2009-07-07 36 views
9

我正在開發一個應用程序中使用log4j,最終在Tomcat/JBoss中運行,但現在我正在Eclipse中運行它。我已經將它配置爲使用log4j.xml文件寫入ConsoleAppender,並將其作爲系統屬性傳遞,並且我的所有日​​志記錄輸出都能正常工作。消除不必要的log4j設置輸出

問題是,log4j吐出一堆引導/啓動垃圾,我真的不需要(或想)看到。例如:

log4j: Retreiving an instance of org.apache.log4j.Logger. 
log4j: Setting [CoherenceMonitor] additivity to [false]. 
log4j: Level value for CoherenceMonitor is [DEBUG]. 
log4j: Desired Level sub-class: [org.apache.log4j.Level] 
log4j: CoherenceMonitor level set to DEBUG 
log4j: Class name: [org.apache.log4j.ConsoleAppender] 
log4j: Setting property [target] to [System.out]. 
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout" 
log4j: Setting property [conversionPattern] to [%-5p %m%n]. 
log4j: Adding appender named [console] to category [CoherenceMonitor]. 

我得到約20這個我跑我的程序每次的線路,它只是掩蓋我真正關心的日誌數據中的噪聲。我想要做的就是壓制這個輸出(以「log4j:」開頭的所有內容),並且只包含來自我自己的日誌語句的輸出。

我試過了所有可以通過Google和我的同事找到的東西,包括爲org.apache類別設置優先級值,如下所示。 (不管我設置優先級的,我仍然得到輸出。)

<category name="org.apache"> 
    <priority value="FATAL"/> 
</category> 

我在log4j的配置相當的新手,而我是非常簡單的。我只有一個appender,一個記錄器和這一個類別。非常感謝任何幫助讓log4j在安裝時保持閉嘴的感覺! :-)

回答

14

這看起來像記錄儀本身的調試。如果您使用XML配置,它看起來像這樣:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true"> 

將調試設置爲false。

+0

嗯......哇。我以爲我已經檢查了一切,不知道我是如何錯過這一切的。這正是它的原因。不過,我知道有幾個同事瀏覽了我的log4j.xml文件,我感覺有點好轉,他們也沒有看到它。謝謝! – 2009-07-08 03:12:30

+0

我剛剛花了半天的時間與伐木鬥爭 - 否則我永遠都不會知道:) – javamonkey79 2009-07-09 01:25:44

3

除了檢查,如果你的的log4j.xml有debug="true"屬性,還要確保你沒有log4j.debug系統參數設置(在Eclipse中,這將出現在運行配置爲JVM參數與-Dlog4j.debug值)。