1

我使用 log4j 写入具有以下属性文件的文件:

log4j.rootLogger=DEBUG, FA

#File Appender
log4j.appender.FA=org.apache.log4j.FileAppender
log4j.appender.FA.File=temp.ppr
log4j.appender.FA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern= %m%n

我的问题是,在我的程序的每次运行中,我想清除文件“temp.ppr”,然后用 lo4j 有效地写入它?还是您推荐其他解决方案?

谢谢

4

3 回答 3

8

您是否尝试过将append属性设置为FileAppenderto false

log4j.appender.FA.append=false
于 2010-12-23T23:38:31.877 回答
5

你可以这样做:

log4j.appender.FA=org.apache.log4j.RollingFileAppender
log4j.appender.FA.MaxBackupIndex=1

然后在应用程序的启动代码中:

((RollingFileAppender)Logger.getRootLogger().getAppender("FA")).rollOver()

这样,对于程序的每次运行,现有日志都会移动到“temp.ppr.1”,并且“temp.ppr”会开始新的。这样,您也始终拥有上一次运行的日志。

于 2010-12-23T23:40:31.247 回答
0

我建议作为您的构建工具(Apache Ant 或 Maven)的一部分,负责清除您不想要的文件。或者,如果您想保留备份,您可以使用RollingFileAppender

于 2010-12-23T23:41:09.027 回答