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