2011-02-16 61 views
2

如何禁用java程序中使用的java庫(jar)的記錄器(打印輸出)?記錄器在.jar java庫中

感謝

更新:有問題的庫使用了Java(java.util.logging.Logger)內置記錄器類。

回答

1

將該包的日誌級別設置爲FATAL。這實際上並不會關閉jar中的所有日誌消息,但應儘量減少。另外請注意,如果您有多個封裝結構在那裏,你如果要使用log4j的添加各行

log4j.logger.com.foo=FATAL 
+1

有問題的庫使用內置的記錄,而不是Java的log4j的圖書館......反正感謝您的想法 – Lyther 2011-02-16 21:53:45

0

,最簡單的方法是增加特定庫的日誌記錄級別的說,warnerror

例如,如果你不想所有Apache的API,春天的API和Hibernate API來弄亂你的日誌文件,則可以做這樣的事情: -

<logger name="org.apache"> 
    <level value="warn" /> 
</logger> 

<logger name="org.springframework"> 
    <level value="warn" /> 
</logger> 

<logger name="org.hibernate"> 
    <level value="warn" /> 
</logger> 

這樣一來,所有的debug而這些庫中的info根本不會顯示。

+1

有問題的庫使用內置的記錄,而不是Java的log4j的庫..無論如何,感謝這個想法 – Lyther 2011-02-16 21:54:23

0

除了增加日誌記錄級別,您可以告訴庫使用NOP記錄器 - 請參閱here。 NOP記錄器只會默認完全不做任何事情,而這正是您想要的。

編輯完成後確定:如果您可以告訴庫應該使用哪個記錄器(並且如果您無法訪問記錄對象,我認爲任何方法都無法工作),只需製作自己的NopLogger即延長記錄器和覆蓋所有的方法有一個空方法,