活动日志文件的通用名称

时间:2018-11-12 10:26:53

标签: java spring logging slf4j

我的Spring Boot应用程序具有以下logback.xml文件,打算在其中创建每日日志文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
    <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <fileNamePattern>./logs/my-log-file.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>15</maxHistory>
            <totalSizeCap>15MB</totalSizeCap>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d [%-5thread] [%-1p] [%logger{35}] - %msg%n</Pattern>
        </layout>
    </appender>

    <root level="WARN">
        <appender-ref ref="rollingFile"/>
    </root>
    <root level="INFO">
        <appender-ref ref="rollingFile"/>
    </root>
</configuration>

文件创建如下:

my-log-file.2018-11-10.log
my-log-file.2018-11-11.log
my-log-file.2018-11-12.log

我希望拥有一个没有日期的当前活动日志文件,因此它是通用名称,如my-log-file.log,只有当日期滚动到新的一天时,该文件才使用日期重命名。

logback.xml需要进行哪些更改才能启用此配置?

1 个答案:

答案 0 :(得分:0)

<file>添加到<appender>,如下所示:

<appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>./logs/my-log-file.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- daily rollover -->
        <fileNamePattern>./logs/my-log-file.%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>15</maxHistory>
        <totalSizeCap>15MB</totalSizeCap>
    </rollingPolicy>
    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>%d [%-5thread] [%-1p] [%logger{35}] - %msg%n</Pattern>
    </layout>
</appender>

来自Logback documentation

  

请注意,file中的RollingFileAppender属性(   TimeBasedRollingPolicy)可以设置或省略。通过设置   包含file的{​​{1}}属性,您可以将   活动日志文件的位置和归档日志的位置   文件。当前日志将始终以指定的文件为目标   通过FileAppender属性。因此,当前活动的名称   日志文件不会随时间变化。但是,如果您选择省略   file属性,则将为每个活动文件重新计算活动文件   期间,基于file的值。