log4j的。每小时滚动,每天拉链

时间:2013-08-08 16:06:29

标签: java logging log4j

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

理想情况下,我只想在一周前和更早的时候压缩文件。但这是问题的另一部分。

1 个答案:

答案 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