这是我第一次在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中添加一些东西?或者,当我在不同的日子再次运行此程序时,日志名称会自动更改吗?
答案 0 :(得分:1)
启动时,Logback将写入appender/file
定义的文件,当滚动策略在Logback中启动时,会将当前日志文件复制到appender/rollingPolicy/fileNamePattern
建议的文件中。
在您的情况下,滚动策略将在当天滚动时启动(这是您的模式 - %d{yyyy-MM-dd}
- 表示)。因此,每天最多10天Logback将滚动当前日志文件,并且在第10天它将滚动当前日志文件并丢弃最旧的存档文件,从而仅保留maxHistory
存档文件。 / p>
更详细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"/>