是否可以将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等。
另请注意,我不希望使用其他日志框架。
答案 0 :(得分:8)
是的,但您必须编写自己的文件处理程序。只需将FileHandler的源代码复制到您的项目中(您无法以任何有用的方式扩展该类)并修改open()
的{{1}}方法。
之后,只需使用正常配置即可使用新处理程序。
答案 1 :(得分:3)
不,不是没有自己写,但你可以做的是安排一个定期执行此操作的cron工作。这可能是最快的解决方案。
答案 2 :(得分:2)
我怀疑它在Java日志框架中是否可用。您可以设置一个shell脚本,它每天晚上压缩所有以前的日志文件。
如果你真的想在java中这样做,你可能需要编写自己的文件处理程序 检查创建新文件的方法并尝试压缩前一个文件。