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.properties中定义的log4j追加器都在使用中_Java_Logging_Log4j_Appender - Fatal编程技术网

Java 所有在log4j.properties中定义的log4j追加器都在使用中

Java 所有在log4j.properties中定义的log4j追加器都在使用中,java,logging,log4j,appender,Java,Logging,Log4j,Appender,我的log4j.properties文件粘贴在下面。我的理解是,我们需要将appender添加到root记录器中,以便appender工作。正如您在下面的属性文件中所看到的,只有appender A附加到根记录器(log4j.rootLogger=info,A)。但是,我看到的是日志信息同时打印到了Appender(ConsoleAppender-A和File Appender-B)。这怎么可能 log4j.rootLogger=info, A log4j.appender.A=org.apac

我的log4j.properties文件粘贴在下面。我的理解是,我们需要将appender添加到root记录器中,以便appender工作。正如您在下面的属性文件中所看到的,只有appender A附加到根记录器(log4j.rootLogger=info,A)。但是,我看到的是日志信息同时打印到了Appender(ConsoleAppender-A和File Appender-B)。这怎么可能

log4j.rootLogger=info, A
log4j.appender.A=org.apache.log4j.ConsoleAppender
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=%-4r [%t] [rid=%X{RID} ] %-5p %c %x - %m%n

log4j.appender.B=org.apache.log4j.FileAppender
log4j.appender.B.layout=org.apache.log4j.PatternLayout
log4j.appender.B.file=target/server.log
log4j.appender.B.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

事实证明控制台appender(A)正在打印到server.log(glassfish log),顺便说一下,它也是与appender B关联的日志文件的名称

以下属性附加到glassfish服务器(启动参数),它帮助我了解加载哪个log4j.properties(如果是杂散属性文件),以及用于日志记录的附件之类的信息

-Dlog4j.debug=true

另一个注意事项是,我开始使用EnhancedPatterLayout,而不是官方log4j文档中提到的PatternLayOut。