这是我第一次在spring中使用日志记录,并给了我一个logback-spring.xml来使用和调整。这是我当前的logback-spring.xml的样子:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include
resource="org/springframework/boot/logging/logback/defaults.xml" />
<property name="LOG_FILE" value="logs/my_file_name.log}"/>
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<file>${LOG_FILE}</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>
<maxHistory>10</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
</appender>
<root level="INFO">
<appender-ref ref="FILE" />
</root>
</configuration>
我还在我的application.properties中添加了以下内容:
logging.config=config/logback-spring.xml
当我运行程序时,将自动创建日志目录。但是,根据我的需要和我的logback-spring.xml指定,当前的日志名为my_file_name.log而不是my_file_name.log.2017-10-25.gz。
为什么会这样呢?是由于logback-spring.xml中的错误还是因为我需要在application.properites中指定其他内容或在pom.xml中添加其他内容?还是在不同日期再次运行该程序时日志名称会自动更改?
最佳答案
在启动时,Logback将写入appender/file
定义的文件,并且在启动滚动策略时,Logback会将当前日志文件复制到appender/rollingPolicy/fileNamePattern
建议的文件。
在您的情况下,滚动策略会在一天中开始生效(这就是您的模式-%d{yyyy-MM-dd}
-的意思)。因此,直到第10天,Logback每天都会滚动当前日志文件,而在第10天,它将滚动当前日志文件和丢弃最旧的存档文件,从而仅保留maxHistory
存档文件。
更多细节in the docs。
顺便说一句,您的logback-spring.xml似乎确实有错误,我怀疑这是...
<property name="LOG_FILE" value="logs/my_file_name.log}"/>
... 应该:
<property name="LOG_FILE" value="logs/my_file_name.log"/>
关于java - logback-spring.xml不会追加文件名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46936207/