我可以将 log4j 配置为每小时翻转一次,然后将所有每日日志文件压缩到一个 zip 中(这样 zip 包含 24 个日志文件)。
理想情况下,我只想压缩一周前或更早的那些日子的文件。但这是问题的另一部分。
您可能想使用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