Logback:SizeAndTimeBasedRollingPolicy不遵守totalSizeCap

我正在尝试以一种方式管理我的日志记录,在这种方式中,我的最旧的归档日志文件一旦达到总累积大小限制或达到其最大历史记录限制就会被删除。 在Logback 1.1.7中使用SizeAndTimeBasedRollingPolicy时,滚动文件追加器将继续创建新的存档,尽管超过了totalSizeCap集。

这是我的logback.xml文件供参考:

    ${USERPROFILE}/testlogs/test.log   ${USERPROFILE}/testlogs/%d{yyyy-MM-dd_HH}/test%i.log.zip  7 50KB 200KB   %d{yyyy-MM-dd HH:mm:ss.SSS} %5p - %m%n       

这是logback中的错误还是我没有正确配置滚动文件appender?

它是Logback 1.1.7中的错误。 见: http : //jira.qos.ch/browse/LOGBACK-1166

我已经检查过, totalSizeCap在Logback 1.1.8-SNAPSHOT中工作。

即使问题得到解答,我也想发布我们所做的工作,直到1.1.8中修复了错误。

错误1166根本不会将totalSizeCap应用于前两个时间单位 ,取决于您正在使用的fileNamePattern上的最小单位,这意味着对于您的方案,它不会考虑totalSize上限的前两个小时的日志。

我的配置在某种程度上就像从logback站点示例中获取的那样 – ;

   logFile.%d{yyyy-MM-dd}.log  30 3GB  

所以我们只需从{yyyy-MM-dd}切换到{yyyy-MM-dd_HH} ,当然最大化maxHistory为30 * 24 。 因此,我们最后两个小时不上限,而不是最后两天 ,对于我们的情况,它是可以省略的。 当然,日志文件将在每个小时开始翻转,但正如我所说,这对我们独特的情况来说是好的。