[英]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.