不同的开发和生产环境生产日志在他们不应该的时候
Different developement and production environment production logs when they shouldn't
我正在开发一个 9 岁 Spring 应用程序,该应用程序使用 Logback 完成日志生成。
日志记录在开发环境中运行良好,但当我们切换到生产环境时,日志仍在写入,直到 "Application started in ...ms"。之后就再也没有写过
经过一些挖掘,我注意到我们的 logback 不是内置在我们的 war 中,而是设置在 Tomcat 库中。这让我觉得我们可以覆盖属性来禁用我们的日志记录设置。问题是,从事这项工作的开发人员已经不在我公司了,所以我基本上是在盲目搜索。
你认为我的第一个假设是正确的吗?我应该在哪里搜索一些覆盖我的 application.properties 的 conf 文件?
这是我们的 application.properties 日志记录设置:
logging.config= classpath:./extranet_config/logback.xml
logging.level.com.sun.mail= trace
logging.exception-conversion-word=
logging.pattern.console=%d{HH:mm:ss.SSS} %-5level [%thread] %logger - %msg %n
logging.pattern.file=.%d{HH:mm:ss.SSS} [%thread] %-5level - %msg %n
logging.pattern.level=%5p
和 logback:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOGS_FOLDER" value="C://log/Extranet/logs" />
<property name="LOGS_TO_COLLECT_FOLDER" value="C://log/Extranet/logs-to-collect" />
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>TRACE</level>
</filter>
<encoder>
<Pattern>%d{HH:mm:ss.SSS} | %-5level | %-22thread | %-12logger | %msg %n</Pattern>
</encoder>
</appender>
<appender name="log-file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>TRACE</level>
</filter>
<file>${LOGS_FOLDER}/extranet.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOGS_TO_COLLECT_FOLDER}/extranet.%d{yyyyMMdd}.log
</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} | %-5level | %-22thread | %-12logger | %m %throwable{0}%n</pattern>
</encoder>
</appender>
<appender name="troubleshooting-file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<file>${LOGS_FOLDER}/extranet-troubleshooting.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${LOGS_FOLDER}/extranet-troubleshooting.%i.log
</fileNamePattern>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>10MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} | %-5level | %-22thread | %-12logger | %msg %n</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="INFO"/>
<logger name="org.hibernate" level="ERROR"/>
<logger name="org.springframework.boot.web.support.ErrorPageFilter" level="OFF" />
<logger name="Application" level="DEBUG"/>
<logger name="QueryLogger" level="DEBUG"/>
<logger name="AOPLogger" level="TRACE"/>
<root>
<appender-ref ref="console" />
<appender-ref ref="log-file" />
<appender-ref ref="troubleshooting-file" />
</root>
</configuration>
注意:这两个文件在生产环境和开发环境中是相同的。
出于某种原因,我们的 logback 类路径在两台服务器上的读取方式不同,我们更改了它们,现在一切正常。
我正在开发一个 9 岁 Spring 应用程序,该应用程序使用 Logback 完成日志生成。
日志记录在开发环境中运行良好,但当我们切换到生产环境时,日志仍在写入,直到 "Application started in ...ms"。之后就再也没有写过
经过一些挖掘,我注意到我们的 logback 不是内置在我们的 war 中,而是设置在 Tomcat 库中。这让我觉得我们可以覆盖属性来禁用我们的日志记录设置。问题是,从事这项工作的开发人员已经不在我公司了,所以我基本上是在盲目搜索。 你认为我的第一个假设是正确的吗?我应该在哪里搜索一些覆盖我的 application.properties 的 conf 文件?
这是我们的 application.properties 日志记录设置:
logging.config= classpath:./extranet_config/logback.xml
logging.level.com.sun.mail= trace
logging.exception-conversion-word=
logging.pattern.console=%d{HH:mm:ss.SSS} %-5level [%thread] %logger - %msg %n
logging.pattern.file=.%d{HH:mm:ss.SSS} [%thread] %-5level - %msg %n
logging.pattern.level=%5p
和 logback:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOGS_FOLDER" value="C://log/Extranet/logs" />
<property name="LOGS_TO_COLLECT_FOLDER" value="C://log/Extranet/logs-to-collect" />
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>TRACE</level>
</filter>
<encoder>
<Pattern>%d{HH:mm:ss.SSS} | %-5level | %-22thread | %-12logger | %msg %n</Pattern>
</encoder>
</appender>
<appender name="log-file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>TRACE</level>
</filter>
<file>${LOGS_FOLDER}/extranet.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOGS_TO_COLLECT_FOLDER}/extranet.%d{yyyyMMdd}.log
</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} | %-5level | %-22thread | %-12logger | %m %throwable{0}%n</pattern>
</encoder>
</appender>
<appender name="troubleshooting-file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<file>${LOGS_FOLDER}/extranet-troubleshooting.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${LOGS_FOLDER}/extranet-troubleshooting.%i.log
</fileNamePattern>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>10MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} | %-5level | %-22thread | %-12logger | %msg %n</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="INFO"/>
<logger name="org.hibernate" level="ERROR"/>
<logger name="org.springframework.boot.web.support.ErrorPageFilter" level="OFF" />
<logger name="Application" level="DEBUG"/>
<logger name="QueryLogger" level="DEBUG"/>
<logger name="AOPLogger" level="TRACE"/>
<root>
<appender-ref ref="console" />
<appender-ref ref="log-file" />
<appender-ref ref="troubleshooting-file" />
</root>
</configuration>
注意:这两个文件在生产环境和开发环境中是相同的。
出于某种原因,我们的 logback 类路径在两台服务器上的读取方式不同,我们更改了它们,现在一切正常。