log4j append = false对我不起作用......为什么?

时间:2010-09-14 19:47:00

标签: java logging log4j

我为log4j配置了以下输出csv日志文件。每次我的程序执行时,我希望通过覆盖不添加到日志文件来重新启动此日志文件。我以为我可以使用append=false来实现这一目标。我知道我已经正确设置了log4j,因为其他日志输出正常,但这些是每日滚动日志,这些日志正在附加,这是期望的影响。

任何人都可以告诉我为什么append=false似乎不起作用。我错过了另一种设置吗?

这是我的配置代码:

#Image output
log4j.logger.fetch.FetchDirectHolidays=debug, S
log4j.appender.S=org.apache.log4j.FileAppender
log4j.appender.S.File=xml\\logs\\FetchDirectHolidays.csv
log4j.appender.S.append=false 
# Keep one backup file
log4j.appender.S.layout=org.apache.log4j.PatternLayout
log4j.appender.S.layout.ConversionPattern= %p , %m%n

我的配置有什么问题?

我忘了声明我的应用程序已经安排好了,我刚刚读到Append = false只有在整个应用程序关闭并重新启动时才清除日志文件。这没有用,因为我需要在每次内部进程执行时清除此日志文件。

2 个答案:

答案 0 :(得分:6)

尝试

log4j.appender.S.Append=false

使用附加资本A

答案 1 :(得分:2)

# Define the root logger with appender file R
log4j.rootLogger = INFO, FILE,stdout

# Define the file appender (File) 
log4j.appender.FILE=org.apache.log4j.FileAppender

# Set the name of the file
log4j.appender.FILE.File=C:/user/FileName.log

# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true

# Set the append to false, overwrite
log4j.appender.FILE.Append=false

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[%5p ] - %m%n



# Direct log messages to stdout (Console)
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%5p ] - %m%n