Logback,每天设置最大历史文件数

9
我使用TimeBasedRollingPolicySizeAndTimeBasedFNATP触发策略来配置我的logback。日志文件的轮换设置为每天进行一次,并且如果日志文件大小超过限制,也会被触发。
如果我在每日轮换的TimeBasedRollingPolicy上设置setMaxHistory(10),那么它将存档最近10天的所有日志文件。但我想在SizeAndTimeBasedFNATP上每天设置maxHistory。
这在logback中是否可行?

你找到解决方案了吗?@Prasanna - Tamil.S
1个回答

11

使用SizeAndTimeBasedFNATP和MaxHistory设置为10,假设每天执行轮换,超过10天的日志将被删除。大小不参与删除逻辑。


嗨,我知道你是lo4j/slf4j/logback项目的创始人,我想没有比你更好回答这些问题的人了。如果大小不考虑删除逻辑,我能否使用TimeBasedRollingPolicy限制每天创建的历史文件数量? - Prasanna
我正在使用logback.xml进行配置(不像Prasanna似乎在使用groovy)。我将<maxHistory>设置为2,但是我有超过2个文件,旧的文件没有被删除。<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>mylog-minute%d{mm}.%i.log.zip</fileNamePattern> <maxHistory>2</maxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>1kB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> - Ustaman Sangat
我注意到文件确实被删除了,但有时一些早期的文件没有被删除 - 我最终得到了以下日志文件,例如 mylog-2012Mar05-minute30.4.log.zip、mylog-2012Mar05-minute39.0.log.zip、mylog-2012Mar05-minute39.1.log.zip和mylog-2012Mar05.log。正如您所看到的,minute30仍然存在,尽管minute31、minute32等已被删除。 - Ustaman Sangat
2
有没有计划或JIRA来为SizeAndTimeBasedFNATP添加maxIndex选项? - DarVar
@Ceki 您好,如果我有这个场景,为了保留7天的日志,我该如何定义maxHistory属性。 <fileNamePattern>${REQUEST_LOG_DIR}/request_archives/%d{yyyy-MM-dd,aux}/ip_${server.ip}/port_${server.port}/request_%d{yyyy-MM-dd_HH-mm}.log</fileNamePattern> 详情请参见http://stackoverflow.com/questions/40098598/maxhistory-of-multiple-d-specifiers-in-logback-timebasedrollingpolicy。非常感谢! - Edward
maxHistory标签适用于log4j2,除了slf4j之外? - Aditya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接