2010-01-24 134 views
2

在我的log4j.xml,我有如何使用log4j禁用類的調試日誌記錄?

<logger name="java.sql"> 
    <level value="DEBUG" /> 
</logger> 

但是使用這個,它還可以對接口Resultset記錄。如果我想禁用此接口的日誌記錄,但仍想要調試日誌記錄statementpreparedstatement等...我該怎麼做?

回答

0

您可以爲每個類或包使用單獨的記錄器,但它取決於如何創建那些類自己的記錄器。

雖然,您最好專注於供應商的這些類的實現,而不是側重於接口。

2

Log4j不允許您​​根據類別或包名稱本身控制日誌記錄。相反,使用log4j(以及類似的Java記錄器)進行記錄控制的粒度由應用程序使用的記錄器名稱決定。如果您的JDBC驅動程序對語句,預處理語句,結果集等有不同的記錄器,那就沒問題。但是,如果它使用單個記錄器記錄所有日誌,則需要進行某種過濾。

有關更多信息,this page有關於在XML配置文件中配置過濾器的部分,並且javadoc列出了可用(標準)過濾器類。例如,您可以根據日誌記錄事件的消息是否與給定字符串匹配進行篩選。儘管如此,過濾方法會很麻煩,尤其是如果有很多不同的消息要過濾/過濾。