java log4j,在使用时清除日志(不仅仅是在启动时)
如何在log4j日志文件正在使用时(而不仅仅是在启动时)清除它们?我的第一个想法是
- 获取现有的FileAppender FA
- 获取FA的所有属性
- 从根记录器中删除FA
- 删除FA登录的文件
- 创建具有相同FA属性的新文件appender FA2
- 将FA2添加到根记录器
How do I make log4j clear a log at startup?建议强制翻车
有更好的办法吗
一些细节:我正在改进一个可以被视为两个应用程序的工具:一个使用log4j的“内部”应用程序日志记录,一个通过gui显示该日志的“外部”应用程序日志记录。内部和外部应用程序共享它们的jvm。内部的一个可以通过gui多次启动。现在我想清除日志,以便它只显示上次运行的输出
我只局限于小的更改,所以让内部应用程序在自己的jvm中运行不是一个选项。整个工具的频繁重启也是如此
# 1 楼答案
尝试使用MaxBackupIndex,如下所示:
当文件大小达到10MB时,日志将重新开始
# 2 楼答案
使用log4j中附加的滚动文件
每次运行都会销毁日志文件
谢谢和问候, 哈里