log4j,在使用时清除日志(不仅仅是在启动时)

时间:2014-07-30 14:51:12

标签: java log4j

如何清除log4j日志文件(不仅仅是在启动时)?我的第一个想法是

  • 获取现有的FileAppender FA
  • 获取FA的所有属性
  • 从根记录器中删除FA
  • 删除FA登录的文件
  • 使用与FA
  • 相同的属性创建新的文件追加器FA2
  • 将FA2添加到根记录器

How do I make log4j clear a log at startup?建议强行翻转

有更好的方法吗?

一些细节:我正在改进一种可以被视为两个应用程序的工具:一个"内部"应用程序使用log4j和"外部"进行日志记录一个通过gui显示这个日志。内部和外部应用程序共享其jvm。内部可以通过gui多次启动。我现在想要清除日志,使其仅显示上次运行的输出。

我只对小的更改进行了修改,因此让内部应用程序在自己的jvm中运行不是一种选择。也不是频繁重启整个工具。

2 个答案:

答案 0 :(得分:1)

尝试使用MaxBackupIndex,见下文:

log4j.appender.myproject=org.apache.log4j.RollingFileAppender
log4j.appender.myproject.File=/export/logs/myproject.log
log4j.appender.myproject.MaxFileSize=10000KB
log4j.appender.myproject.MaxBackupIndex=0
log4j.appender.myproject.layout=org.apache.log4j.PatternLayout

当文件大小达到10MB时,日志将重新开始。

答案 1 :(得分:0)

使用log4j中附加的滚动文件...

它会破坏每次运行的日志文件。

谢谢和问候, 哈