我正在使用Logback来管理服务器上的日志。我将RollingFileAppender
与TimeBasedRollingPolicy
一起使用:
<appender name="file-appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/server/logs/error.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${defaultPattern}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- hourly rollover -->
<fileNamePattern>/server/logs/history/%d{yyyy-MM-dd,aux}/error.%d{yyyy-MM-dd_HH}.log.zip</fileNamePattern>
<maxHistory>168</maxHistory> <!--7Days-->
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
我将maxHistory
设置为168,以保留日志7天(每小时一个文件,每天24个文件= 168个文件)。
我希望在history
文件夹中找到过去7天的子目录,并在每个目录中找到24个压缩日志文件(当前和最旧的除外)。
但是有76个文件夹可以追溯到大约4个月。在某些日子里,没有文件夹,很多文件夹每小时都不包含zip文件。但是history
树中总共有超过1000个zip文件。
因此,需要进行某种清理,但是似乎有些文件清理得很晚。我的配置有什么问题?我正在使用版本logback-classic-1.2.3。
答案 0 :(得分:1)
我还没有以这种方式使用滚动策略。我会这样实现:
<fileNamePattern>/server/logs/history/error.%d{yyyy-MM-dd_HH}.log.zip</fileNamePattern>
另请参阅this thread