我希望每日日志的日志文件附加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`
答案 0 :(得分:4)
我对每日日志文件轮换有类似的要求..(虽然问题较旧,但认为答案会对其他人有所帮助)..
关键点:
首先,我们可以避免使用DailyRollingFileAppender 。为什么?据观察,DailyRollingFileAppender会出现同步问题和数据丢失。 log4j extras随附包括应考虑用于新部署的备选方案,并在org.apache.log4j.rolling.RollingFileAppender的文档中进行了讨论。参考:Documentation of Daily Rolling File Appender
Apache extras log4j,建议org.apache.log4j.rolling.RollingFileAppender使用Time based rolling policy
可能会找到基于时间的日志轮换的sample配置。
希望这有帮助。
答案 1 :(得分:0)
首先,您有一个错误,因为DailyRollingFileAppender
不支持该属性MaxFileSize
。
然后,您可以尝试从'
DatePattern
尝试更改
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd
到
log4j.appender.FILE.DatePattern=.yyyy-MM-dd
答案 2 :(得分:-1)
尝试添加另一行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