Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java log4j属性DailRollingFileAppender不工作_Java_Logging_Netbeans_Log4j_Rollingfileappender - Fatal编程技术网

Java log4j属性DailRollingFileAppender不工作

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

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

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

有没有人使用这个罐子并面临这样的问题。请帮忙

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

# 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