log4j属性DailyRollingFileAppender不起作用

我希望每日日志的日志文件附加yyyy-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. 首先,我们可以避免使用DailyRollingFileAppender 。 为什么? 据观察,DailyRollingFileAppender会出现同步问题和数据丢失。 log4j extras随附包括应考虑用于新部署的备选方案,并在org.apache.log4j.rolling.RollingFileAppender的文档中进行了讨论。 参考: Daily Rolling File Appender的文档

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

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

希望这可以帮助。

首先,您遇到错误,因为DailyRollingFileAppender不支持MaxFileSize属性。

然后你可以尝试从DatePattern删除char '

尝试改变

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

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

尝试添加另一行log4j.appender.file.Append = true

完整代码如下所示

  # Root logger option log4j.rootLogger=DEBUG, file, stdout # Daily rolling file appender log4j.appender.file=org.apache.log4j.DailyRollingFileAppender log4j.appender.file.File=logs/mylogs.log log4j.appender.file.Append=true log4j.appender.file.DatePattern='.'dd-MM-yyyy log4j.appender.file.MaxFileSize=10MB log4j.appender.file.MaxBackupIndex=100 log4j.appender.file.encoding=UTF-8 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{dd-MM-yyyy HH:mm:ss} %-5p %c{1}:%L - %m%n