目前项目组用了logback版本为1.1.2,使用中发现日志文件大小限制triggeringPolicy配置无效,配置了10M限制,会产生了1G多的文件日志:
配置如下:
-
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-
<Encoding>UTF-8</Encoding>
-
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-
<FileNamePattern>location-access.%d{yyyy-MM-dd}.log</FileNamePattern>
-
<MaxHistory>30</MaxHistory>
-
</rollingPolicy>
-
<layout class="ch.qos.logback.classic.PatternLayout">
-
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}---%X{appName:-EZView}---%X{moduleName:-NONE}---%X{logType}---%marker---%logger{36}---%msg%n</pattern>
-
</layout>
-
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-
<MaxFileSize>10MB</MaxFileSize>
-
</triggeringPolicy>
-
</appender>
应该是SizeBasedTriggeringPolicy和TimeBasedRollingPolicy使用方式有的问题,查了下资料,好像logback的bug,于是打算升级一下logback版本为当前最新版1.2.1,参考(),配置如下:
-
<configuration>
-
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
-
<file>mylog.txt</file>
-
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-
<!-- rollover daily -->
-
<fileNamePattern>mylog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
-
<!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB -->
-
<maxFileSize>10MB</maxFileSize>
-
<maxHistory>30</maxHistory>
-
<totalSizeCap>2GB</totalSizeCap>
-
</rollingPolicy>
-
<encoder>
-
<pattern>%msg%n</pattern>
-
</encoder>
-
</appender>
-
-
-
<root level="DEBUG">
-
<appender-ref ref="ROLLING" />
-
</root>
-
-
</configuration>
这样日志文件就可以正常的分割了,每天一个日志文件,当天的日志文件超过10MB时,生成新的日志文件,当天的日志文件数量超过totalSizeCap/maxFileSize,日志文件就会被回滚覆盖。
阅读(4672) | 评论(0) | 转发(0) |