我能否将 log4j 配置为每小时滚动一次,然后将所有每日日志文件压缩到一个 zip 文件中(以便 zip 文件包含 24 个日志文件)。
理想情况下,我只想压缩一周前或更早的那些日子的文件。但这是问题的另一部分。
最佳答案
您可能想使用 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
关于java - log4j。每小时滚动一次,每天压缩一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18130836/