繁体   English   中英

log4j警告问题 - apache commons

[英]log4j warning issue - apache commons

我正在使用apache commons库和log4j。 我有一个xml配置文件和一个log4j.properties文件。 我想在我的xml配置文件中指定我的log4j属性路径。 要加载我的设置我做:

//Loading my xml file
this.config = new XMLConfiguration(this.xmlFileName);  

此时会出现以下警告:

log4j:WARN No appenders could be found for logger (org.apache.commons.configuration.ConfigurationUtils).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

但是我还没有调用任何log4j对象。 一旦我读完了xml文件,我就可以成功使用我的log4j实例了。 有没有办法删除这些警告?

检查log4j.properties文件是否在类路径中

此链接可能有用: http//www.coderanch.com/t/63230/open-source/log-log-WARN-No-appenders

创建记录器时Log4J输出此错误,但未定义任何appender。 实际上,在初始化log4j之前创建记录器时会发生此错误。

你说你没有调用任何log4j对象。 但是在错误消息中,您会看到org.apache.commons.configuration.ConfigurationUtils创建了一个记录器对象(参见第66行)。

您可以在初始化之前将其关闭,请参阅如何关闭log4j警告?

Logger.getRootLogger().setLevel(Level.OFF);

由于初始化通常设置根记录器的日志级别,因此不需要再次打开它。

我通过此解决方法解决了我的问题:

//Disable log level
Logger.getRootLogger().setLevel(Level.OFF);

现在我可以在没有警告的情况下读取我的xml配置文件。
设置日志级别后:

Logger.getRootLogger().setLevel(Level.INFO);

您至少应该在加载的log4j配置文件中为根记录器设置appender和logger级别。 否则,您将看到此警告消息。

为根记录器设置appender和logger级别的示例:

#Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
log4j.rootLogger=DEBUG, CONSOLE

#Set the behavior of the CONSOLE appender 
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM