我是否可以将log4j配置为每小时翻转,然后将所有每日日志文件压缩为一个zip(这样zip包含24个日志文件)。
理想情况下,我只想在一周前和更早的时候压缩文件。但这是问题的另一部分。
答案 0 :(得分:8)
您可能想要使用DailyRollingFileAppender。例如,要按小时滚动它们,您将使用'.'yyyy-MM-dd-HH
的DatePattern。对于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