簡體   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