log4j.properties文件 - 同一个类中的多个记录器 [英] log4j.properties file - multiple loggers in same class
问题描述
我想在我的应用程序中有两个不同的 log4j
记录器,并且在他们写入尊重日志的内容之间没有重叠。
I would like to have two different log4j
loggers in my application, and for there to be no "overlap" between the content they write to their respect logs.
例如:
- Logger1写入与一组系统相关的INFO事件事件
- Logger2写入与另一组系统事件相关的INFO事件
- 两次日志中不应出现任何条目
我的log4j.properties如下:
My log4j.properties is as follows:
log4j.rootLogger=DEBUG, stdout
log4j.logger.org.apache=DEBUG, stdout
log4j.logger.xdasLogger=DEBUG, xdas
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%m%n
log4j.appender.xdas=org.apache.log4j.ConsoleAppender
log4j.appender.xdas.layout=org.apache.log4j.PatternLayout
log4j.appender.xdas.layout.ConversionPattern=%d %-5p %c - %m%n
我的Java代码如下:
My Java code is as follows:
public static void main(String[] args) {
PropertyConfigurator.configure(Client.class
.getResource("/log4j.properties"));
xdasLogger = Logger.getLogger("xdasLogger");
logger = Logger.getLogger(Client.class);
logger.info("normal");
xdasLogger.info("xdas");
}
但我的控制台输出如下:
But my console output is as follows:
normal
2012-06-28 09:52:44,580 INFO xdasLogger - xdas
xdas
请注意, logger
和 xdasLogger都会记录xdas
,这是不受欢迎的。
Note that "xdas" is logged by both logger
and xdasLogger
, which is undesirable.
有谁知道我需要将哪些更改放入我的log4j.properties以将控制台输出更改为以下内容?
Does anyone know what changes I need to put into my log4j.properties to change the console output to the following?
normal
2012-06-28 09:52:44,580 INFO xdasLogger - xdas
解决方案(取自已接受的答案):
log4j.rootLogger=DEBUG, stdout
log4j.logger.org.apache=DEBUG, stdout
log4j.logger.xdasLogger=DEBUG, xdas
log4j.additivity.org.apache=false
log4j.additivity.xdasLogger=false
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%m%n
log4j.appender.xdas=org.apache.log4j.ConsoleAppender
log4j.appender.xdas.layout=org.apache.log4j.PatternLayout
log4j.appender.xdas.layout.ConversionPattern=%d %-5p %c - %m%n
推荐答案
尝试将记录器的可加性设置为false。这将避免传播到rootLogger。
Try setting the additivity of the loggers to false. This will avoid the propagation to the rootLogger.
log4j.additivity.org.apache=false
log4j.additivity.xdasLogger=false
这篇关于log4j.properties文件 - 同一个类中的多个记录器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!