log4j 属性 DailyRollingFileAppender 不起作用

我想要每日日志,日志文件以y-dd-mm格式附加日期。当我使用DailyRollingFileAppender时,不会创建新的日志文件。日志将写入同一日志文件。此外,不考虑提供的日期模式。创建的日志文件是 LoggerFile.log。每个内容(甚至在第二天)都写入此文件。

我正在使用log4j-1.2.17 jar。我正在用 Java 的 Netbeans 7.3.1 进行开发。

是否有人使用此JAR并面临这样的问题。请帮忙!

以下是我使用的属性文件的内容:

# Root logger option
log4j.rootLogger=ERROR,FILE,stdout

# Define the file appender
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender

log4j.appender.FILE.File=.//..//logs//LoggerFile.log

# Define the layout for file appender
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS zzz} %5p     %c{1}:%L - %m%n

log4j.appender.FILE.MaxFileSize=10MB


# Direct log messages to stdout
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=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L -  %m%n`

答案 1

我对每日日志文件轮换有类似的要求。(虽然这个问题比较老,但认为答案会帮助别人)。

要点:

  1. 首先,我们可以避免使用DailyRollingFileAppender。为什么?已观察到DailyRollingFileAppender表现出同步问题和数据丢失。log4j 附加组件包括新部署应考虑的替代方案,并在 org.apache.log4j.rolling.RollingFileAppender 的文档中进行了讨论。参考:每日滚动文件追加器文档

  2. Apache extras log4j,建议使用 org.apache.log4j.rolling.RollingFileAppender基于时间的滚动策略

  3. 可以找到基于时间的日志轮换的示例配置。

希望这有帮助。


答案 2

首先,您有一个错误,因为 不支持该属性 。DailyRollingFileAppenderMaxFileSize

然后,您可以尝试从中删除字符:'DatePattern

尝试更改

log4j.appender.FILE.DatePattern='.'yyyy-MM-dd

log4j.appender.FILE.DatePattern=.yyyy-MM-dd

推荐