[英]log4j.properties file - multiple loggers in same class
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. 我希望在我的应用程序中有两个不同的log4j
记录器,并且在他们写入尊重日志的内容之间没有“重叠”。
For example: 例如:
My log4j.properties is as follows: 我的log4j.properties如下:
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
My Java code is as follows: 我的Java代码如下:
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
Note that "xdas" is logged by both logger
and xdasLogger
, which is undesirable. 请注意, logger
和xdasLogger
都会logger
“xdas”,这是不可取的。
Does anyone know what changes I need to put into my log4j.properties to change the console output to the following? 有谁知道我需要将哪些更改放入我的log4j.properties以将控制台输出更改为以下内容?
normal
2012-06-28 09:52:44,580 INFO xdasLogger - xdas
Solution (taken from accepted answer): 解决方案(取自已接受的答案):
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
Try setting the additivity of the loggers to false. 尝试将记录器的可加性设置为false。 This will avoid the propagation to the rootLogger. 这将避免传播到rootLogger。
log4j.additivity.org.apache=false
log4j.additivity.xdasLogger=false
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.