当我停止运行spring-boot应用程序时,将生成 两个 日志文件,而不是 一个 (期望一个)。
spring-boot
我Logback-test.xml下面的文件有什么问题可能是造成此问题的原因?
Logback-test.xml
logback-test.xml:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <timestamp key="myTimestamp" datePattern="yyyy-MM-dd'_'HH-mm-ss.SSS"/> <include resource="org/springframework/boot/logging/logback/base.xml"/> <logger name="org.springframework.web" level="INFO"/> <!-- Send debug messages to System.out --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!-- By default, encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder --> <encoder> <pattern>%d{HH:mm:ss.SSS} - %msg%n</pattern> </encoder> </appender> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>C:\path\to\my\file\myLog-${myTimestamp}.log</file> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} - %msg%n</Pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <FileNamePattern>myLog.%i{yyyy-MM-dd_HH:mm:ss.SSS}}.log</FileNamePattern> <MinIndex>1</MinIndex> <MaxIndex>10</MaxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>2MB</MaxFileSize> </triggeringPolicy> </appender> <logger name="com.my.package" level="INFO" additivity="false"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> </logger> <!-- By default, the level of the root level is set to DEBUG --> <root level="INFO"> <appender-ref ref="STDOUT" /> </root> </configuration>
正在创建的两个文件例如:
myLog-2016-04-22_15-47-30.126.log and myLog-2016-04-22_15-47-30.922.log
解析配置时将生成时间戳。由于Spring Boot在启动期间会一次重新初始化登录,因此会生成两个不同的时间戳,因此会生成两个文件。
您可以timeReferene="contextBirth"在配置中使用a 以获得恒定的时间戳。由于LoggerContext不会被销毁,因此只需将其重置即可:
timeReferene="contextBirth"
LoggerContext
<timestamp key="myTimestamp" timeReference="contextBirth" datePattern="yyyy-MM-dd'_'HH-mm-ss.SSS"/>