1

我写了一个 TimeBasedRollingPolicy logback.xml,虽然成功创建了日志文件,但它似乎是从application.properties读取它。这是我的设置:

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>

    <appender name="ROLLING-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">
            <!-- daily rollover -->
            <fileNamePattern>${LOG_FILE}-%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="ROLLING-FILE"/>
    </root>

</configuration>

应用程序属性

logging.path=/path/to/log/folder/
logging.file=${logging.path}myLog
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

当我运行我的应用程序时,日志已成功保存在正确的路径中,但仅保存为myLog。我希望它附加日期(如在 logback.xml 中)。注意我确实想继续从application.properties获取logging.pathlogging.file因为我有多个取决于环境。

谢谢

4

1 回答 1

1

1)您需要设置一个logging.filelogging.path属性,而不是两者。
所以logging.file=/path/to/log/folder/myLog应该足以myLog在指定路径中获取日志文件。

spring boot 文档提到了这一点。

2)这是日志滚动的格式模式,而不是当前日志:

 <fileNamePattern>${LOG_FILE}-%d{yyyy-MM-dd}.log</fileNamePattern>  

当当前日志文件滚动/归档时,您会自动获得此格式,因为达到了模式定义的时间限制。在你的情况下,这意味着每天。

于 2019-03-05T20:35:01.547 回答