应用程序日志文件夹中有.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>
答案 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