Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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中使用5个log4j属性生成5个(多于2个)日志文件_Java - Fatal编程技术网

如何在java中使用5个log4j属性生成5个(多于2个)日志文件

如何在java中使用5个log4j属性生成5个(多于2个)日志文件,java,Java,如何在java中使用5个log4j属性生成5个(多于2个)日志文件,我使用了2个文件,工作正常,但我需要创建2个以上的文件,但创建的文件不超过2个 谢谢 配置: # This is first log file log4j.rootLogger=INFO, file log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=C://First_logger.out log4j.a

如何在java中使用5个log4j属性生成5个(多于2个)日志文件,我使用了2个文件,工作正常,但我需要创建2个以上的文件,但创建的文件不超过2个

谢谢

配置:

    # This is first log file

log4j.rootLogger=INFO, file

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C://First_logger.out
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[ %p ] %d{dd MMM yyyy HH:mm:ss,SSS} %c:%L - %m%n%n

# This is second log file

log4j.rootLogger=INFO, SecondLog

log4j.appender.SecondLog=org.apache.log4j.RollingFileAppender
log4j.appender.SecondLog.File=C://second-report.out
log4j.appender.SecondLog.layout=org.apache.log4j.PatternLayout
log4j.appender.SecondLog.layout.ConversionPattern=[ %p ] %d{dd MMM yyyy HH:mm:ss,SSS} %c:%L - %m%n%n

log4j.category.SecondLogger=DEBUG, SecondLog
log4j.additivity.SecondLogger=false

# This is Third log File


log4j.rootLogger=INFO, ThirdLog

log4j.appender.ThirdLog=org.apache.log4j.RollingFileAppender
log4j.appender.ThirdLog.File=C://third-report.out
log4j.appender.ThirdLog.layout=org.apache.log4j.PatternLayout
log4j.appender.ThirdLog.layout.ConversionPattern=[ %p ] %d{dd MMM yyyy HH:mm:ss,SSS} %c:%L - %m%n%n

log4j.category.ThirdLogger=DEBUG, ThirdLog
log4j.additivity.ThirdLogger=false

我重现了这个配置的问题,第一个logger.out没有被创建,但是第二个report.out和第三个report.out被创建

如果我们为第一个块添加以下行,将生成三个文件:

log4j.category.fileLogger=DEBUG, file

此外,如果第一个文件的块与原始配置一起放在配置文件的末尾,也会生成这三个文件。目前,我不知道为什么块的顺序很重要。

我重现了这个配置的问题,第一个logger.out没有创建,但是第二个report.out和第三个report.out是

如果我们为第一个块添加以下行,将生成三个文件:

log4j.category.fileLogger=DEBUG, file

此外,如果第一个文件的块与原始配置一起放在配置文件的末尾,也会生成这三个文件。现在,我不知道为什么块的顺序很重要。

嘿,我找到了解决这个问题的方法。我创建了多个log4j属性文件,但是, 实际上,我们必须为多个属性文件只写一个log4j属性文件,因为它不工作,log4j只初始化一个属性文件,所以我们必须写一个log4j文件,在该文件中我们必须配置其他多个记录器。如下

    # This is only one  log4j property file

    log4j.rootLogger=INFO, file, SecondLog, ThirdLog

    log4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.File=C://First_logger.out
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=[ %p ] %d{dd MMM yyyy HH:mm:ss,SSS} %c:%L - %m%n%n

   log4j.category.fileLogger=DEBUG, file

    log4j.appender.SecondLog=org.apache.log4j.RollingFileAppender
    log4j.appender.SecondLog.File=C://second-report.out
    log4j.appender.SecondLog.layout=org.apache.log4j.PatternLayout
    log4j.appender.SecondLog.layout.ConversionPattern=[ %p ] %d{dd MMM yyyy HH:mm:ss,SSS} %c:%L - %m%n%n

    log4j.category.SecondLogger=DEBUG, SecondLog
    log4j.additivity.SecondLogger=false



    log4j.appender.ThirdLog=org.apache.log4j.RollingFileAppender
    log4j.appender.ThirdLog.File=C://third-report.out
    log4j.appender.ThirdLog.layout=org.apache.log4j.PatternLayout
    log4j.appender.ThirdLog.layout.ConversionPattern=[ %p ] %d{dd MMM yyyy HH:mm:ss,SSS} %c:%L - %m%n%n

    log4j.category.ThirdLogger=DEBUG, ThirdLog
    log4j.additivity.ThirdLogger=false

嘿,我找到了解决办法。我创建了多个log4j属性文件,但是, 实际上,我们必须为多个属性文件只写一个log4j属性文件,因为它不工作,log4j只初始化一个属性文件,所以我们必须写一个log4j文件,在该文件中我们必须配置其他多个记录器。如下

    # This is only one  log4j property file

    log4j.rootLogger=INFO, file, SecondLog, ThirdLog

    log4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.File=C://First_logger.out
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=[ %p ] %d{dd MMM yyyy HH:mm:ss,SSS} %c:%L - %m%n%n

   log4j.category.fileLogger=DEBUG, file

    log4j.appender.SecondLog=org.apache.log4j.RollingFileAppender
    log4j.appender.SecondLog.File=C://second-report.out
    log4j.appender.SecondLog.layout=org.apache.log4j.PatternLayout
    log4j.appender.SecondLog.layout.ConversionPattern=[ %p ] %d{dd MMM yyyy HH:mm:ss,SSS} %c:%L - %m%n%n

    log4j.category.SecondLogger=DEBUG, SecondLog
    log4j.additivity.SecondLogger=false



    log4j.appender.ThirdLog=org.apache.log4j.RollingFileAppender
    log4j.appender.ThirdLog.File=C://third-report.out
    log4j.appender.ThirdLog.layout=org.apache.log4j.PatternLayout
    log4j.appender.ThirdLog.layout.ConversionPattern=[ %p ] %d{dd MMM yyyy HH:mm:ss,SSS} %c:%L - %m%n%n

    log4j.category.ThirdLogger=DEBUG, ThirdLog
    log4j.additivity.ThirdLogger=false

有机会切换到Logback吗??您是否调试过它以查看失败的地方?记录器是否加载附加器?是否抛出异常?我没有得到任何异常或错误切换到Logback的机会??您是否调试过它以查看失败的地方?记录器是否加载附加器?它是否引发异常?我没有收到任何异常或错误哪一个文件不是您创建的?这是第一个吗,就像我的一样?如果我对三个块的类别进行注释,则只会创建第三个report.out。顺便说一句,我对C目录没有写访问权限,所以我使用C://a/First\u logger.out路径进行测试。首先创建的是哪个实例,仅创建了两个文件,对我来说,第一个和第二个文件并没有创建第三个,然后继续。您没有创建哪个文件?这是第一个吗,就像我的一样?如果我对三个块的类别进行注释,则只会创建第三个report.out。顺便说一句,我对C目录没有写访问权限,所以我使用C://a/First\u logger.out路径进行测试。首先创建的是哪个实例,只创建了两个文件,对我来说,第一个和第二个文件不是第三个,然后继续。