logback.xml仅限日期

时间:2018-02-20 15:40:34

标签: java logging logback

我是编码和stackoverflow的新手,我们正在使用logback来记录我们的应用程序,截至目前我们正在使用基于时间的滚动策略的{fileName}。%d {yyyy-MM-dd} .log命名约定(滚动发生在每一天)并设置30天作为日志存储在应用程序中的最长时间。我们需要将命名约定更改为仅日期格式({fileName}。%d {dd} .log)。但我们得到“fileNamePattern中的日期格式将导致存档日志文件名称发生冲突。”错误

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>
            %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
        </Pattern>
    </layout>
</appender>

<appender name="dailyRollingFileAppender"
          class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>logs/deliveryService.log</file>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <Pattern>
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n
        </Pattern>
    </encoder>

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- rollover daily -->
        <fileNamePattern>logs/deliveryService.%d{yyyy-MM-dd}.log
        </fileNamePattern>
        <!-- Delete log after 30 days -->
        <maxHistory>30</maxHistory>
    </rollingPolicy>

</appender>


<!-- Send logs to both console and file audit -->
<logger name="com.bnsf" level="debug"
        additivity="false">
    <appender-ref ref="dailyRollingFileAppender" />
    <appender-ref ref="STDOUT" />
</logger>

<root level="INFO">
    <appender-ref ref="STDOUT" />
</root>

1 个答案:

答案 0 :(得分:0)

因为像2月份这样的月份,只有28/29天,所以在30天的窗口中,您将有两次delivery.service.01.log和delivery.02.log文件。