logback-spring.xml不会附加文件名

时间:2017-10-25 15:19:13

标签: java spring logging logback

这是我第一次在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中添加一些东西?或者,当我在不同的日子再次运行此程序时,日志名称会自动更改吗?

1 个答案:

答案 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"/>