Java log4j属性DailRollingFileAppender不工作
我想要日志文件中附加yyyy dd mm格式的日期的每日日志。使用DailyRollingFileAppender时,不会创建新的日志文件。日志将写入同一个日志文件。此外,不考虑提供的日期模式。创建的日志文件是LoggerFile.log。并且每个内容(甚至第二天)都会写入此文件 我正在使用log4j-1.2.17 jar。我正在用Java开发Netbeans 7.3.1 有没有人使用这个罐子并面临这样的问题。请帮忙 以下是我使用的属性文件的内容:Java log4j属性DailRollingFileAppender不工作,java,logging,netbeans,log4j,rollingfileappender,Java,Logging,Netbeans,Log4j,Rollingfileappender,我想要日志文件中附加yyyy dd mm格式的日期的每日日志。使用DailyRollingFileAppender时,不会创建新的日志文件。日志将写入同一个日志文件。此外,不考虑提供的日期模式。创建的日志文件是LoggerFile.log。并且每个内容(甚至第二天)都会写入此文件 我正在使用log4j-1.2.17 jar。我正在用Java开发Netbeans 7.3.1 有没有人使用这个罐子并面临这样的问题。请帮忙 以下是我使用的属性文件的内容: # Root logger option lo
# 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`
尝试添加另一行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
首先,您有一个错误,因为
dailrollingfileappender
不支持属性MaxFileSize
然后您可以尝试从日期模式中删除字符”
:
试着改变
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd
到
我对每日日志文件轮换有类似的要求。。(虽然这个问题比较老,但我认为答案会对其他人有所帮助)
要点:
首先,我们可以避免使用DailRollingFileAppender。为什么?已观察到DailRollingFileAppender出现同步问题和数据丢失。log4j extras companion包括新部署应考虑的备选方案,这些方案在org.apache.log4j.rolling.RollingFileAppender的文档中进行了讨论。参考:
apacheextraslog4j建议与
可能会找到基于时间的日志旋转配置
希望这有帮助。您是否尝试过使用绝对路径?找到解决方案了吗?我正在使用log4j 1.2.16。我使用您的属性得到以下警告:log4j:org.apache.log4j.DailyRollingFileAppender中的WARN No此类属性[maxBackupIndex]。
和log4j:WARN No此类属性[maxFileSize]在org.apache.log4j.DailyRollingFileAppender中。
这些属性是否应包含在您的答案中?@stackoverflowuser2010当您将DailyRollingFileAppender与DatePattern一起使用时,您不能使用MaxFileSize或MaxBackupIndex。只要删除这两个属性,警告就会消失。如果不使用DatePattern属性,则可以使用MaxFileSize和MaxBackupIndex。这不适用于我。删除“
可能不是正确的解决方案<代码>此模式应遵循SimpleDataFormat约定。特别是,必须在一对单引号内转义文本代码>,按照
log4j.appender.FILE.DatePattern=.yyyy-MM-dd