5

我可以将 log4j 配置为每小时翻转一次,然后将所有每日日志文件压缩到一个 zip 中(这样 zip 包含 24 个日志文件)。

理想情况下,我只想压缩一周前或更早的那些日子的文件。但这是问题的另一部分。

4

1 回答 1

9

您可能想使用DailyRollingFileAppender。例如,要每小时滚动一次,您可以使用'.'yyyy-MM-dd-HH. 对于 log4j.properties 文件:

log4j.appender.myAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.myAppender.DatePattern='.'yyyy-MM-dd-HH
...

或者对于您的编程配置:

DailyRollingFileAppender appender = new DailyRollingFileAppender();
appender.setDatePattern("'.'yyyy-MM-dd-HH");

Logger root = Logger.getRootLogger();
root.addAppender(appender);

不幸的是,使用 DailyRollingFileAppender 意味着您无法限制文件大小 - 如果您在给定的滚动期间有大量日志,这可能会出现问题。

压缩看看:compress-log4j-files

于 2013-08-08T16:12:40.523 回答