java - log4j。每小时滚动一次,每天压缩一次

标签 java logging log4j

我能否将 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/

相关文章:

java - Java中的基本I/O问题

java - XML解析错误: syntax error in Spark framework

java - JavaFX 中 WebView 的性能

Python 日志记录方面的最佳实践

java - 使用 Logger 的 info() 打印类名、方法名和行号

java - 尽管保留了所有内容,但无法使用 log4j 生成日志文件

java - Spring data jpa LIKE 查询不能在末尾使用空格吗?

java - 使用 log4j 在 mule 中自定义日志文件名

java - 日志记录有时有效,但有时无效

ios - Swift - 理解 iOS 崩溃日志