可以将java.util.logging配置为使用压缩日志文件吗?

时间:2009-10-07 08:40:22

标签: java logging

是否可以将java.util.logging配置为在使用新日志文件“滚动”时压缩日志文件?例如,我的日志配置文件的摘录如下所示:

java.util.logging.FileHandler.level     = ALL
java.util.logging.FileHandler.pattern   = /blah.log
java.util.logging.FileHandler.limit     = 10000000
java.util.logging.FileHandler.count     = 5

理想情况下,我希望将当前的日志消息写入blah.log.0,同时保留blah.log.1.gz,blah.log.2.gz等。

另请注意,我不希望使用其他日志框架。

3 个答案:

答案 0 :(得分:8)

是的,但您必须编写自己的文件处理程序。只需将FileHandler的源代码复制到您的项目中(您无法以任何有用的方式扩展该类)并修改open()的{​​{1}}方法。

之后,只需使用正常配置即可使用新处理程序。

答案 1 :(得分:3)

不,不是没有自己写,但你可以做的是安排一个定期执行此操作的cron工作。这可能是最快的解决方案。

答案 2 :(得分:2)

我怀疑它在Java日志框架中是否可用。您可以设置一个shell脚本,它每天晚上压缩所有以前的日志文件。

如果你真的想在java中这样做,你可能需要编写自己的文件处理程序 检查创建新文件的方法并尝试压缩前一个文件。