为什么有.1 .2 .3扩展名的回溯日志文件?

时间:2016-09-14 09:02:15

标签: java logging logback

应用程序日志文件夹中有.1 .2 .3等扩展名的日志文件,我不知道原因。还有一个名称正确的日志文件,但它是空的。例如:

app.log             │      0│Sep 14 02:12 <---
app.log.1           │116350K│Sep 14 10:45 <---
app.log.2016-09-10.1│102403K│Sep 10 18:39
app.log.2016-09-10.2│ 90241K│Sep 11 01:59
app.log.2016-09-11.0│      0│Sep 11 23:36
app.log.2016-09-12.0│102401K│Sep 12 04:54
app.log.2016-09-12.1│102401K│Sep 12 06:13
app.log.2016-09-12.2│102401K│Sep 12 07:13
app.log.2016-09-13.0│102403K│Sep 14 02:12
app.log.2016-09-13.1│102401K│Sep 13 19:49
app.log.2016-09-13.2│ 75914K│Sep 14 01:59

这偶然发生,没有任何明显的原因。

logback.xml如下:

<configuration scan="true" scanPeriod="15 seconds">
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${log_file}</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${log_file}.%d{yyyy-MM-dd}.%i</fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>100MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
        <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder>
    <charset>UTF-8</charset>
        <pattern>%d{ISO8601}|%-25.25t|%-5.5p|%-60.60c|%m%n</pattern>
    </encoder>
</appender>
<root level="DEBUG">
    <appender-ref ref="FILE" />
</root>

编辑:app.log.1中的第一个日志行包含时间戳2016-09-14 00:00:00,003

编辑:根据@Kiskae的建议,我修改了logback.xml以符合文档并更新了从1.1.3到1.1.7的logback版本。但它没有帮助。这是新的logback.xml

<configuration scan="true" scanPeriod="15 seconds">
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${log_file}</file>

    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <fileNamePattern>${log_file}.%d{yyyy-MM-dd}.%i</fileNamePattern>
        <maxFileSize>100MB</maxFileSize>
        <maxHistory>7</maxHistory>
        <totalSizeCap>200GB</totalSizeCap>
    </rollingPolicy>

    <encoder>
        <charset>UTF-8</charset>
        <pattern>%d{ISO8601}|%-25.25t|%-5.5p|%-60.60c|%m%n</pattern>
    </encoder>

</appender>


<root level="DEBUG">
    <appender-ref ref="FILE" />
</root>

1 个答案:

答案 0 :(得分:1)

<fileNamePattern>${log_file}.%d{yyyy-MM-dd}.%i</fileNamePattern> - 这指定了文件名模式,因为您使用了TimeBasedRollingPolicy rollingPolicy,它将每天创建一个新的日志文件。 %i标记表示一个递增的整数,如果日志到达配置的maxFileSize,将用于打开新文件:

  

除“%d”外,请注意“%i”转换令牌。 %i和%d令牌都是强制性的。每当当前日志文件在当前时间段结束之前达到maxFileSize时,它将以增加的索引存档,从0开始。

来源:http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedRollingPolicy