2012-11-12 116 views
5

我有一個非常詳細的類中的方法,這使得日誌難以閱讀。我想通過改變一個方法的級別來減少日誌記錄,而同一個類中的其他方法保持不變。這可能嗎?我可以使用log4j在Java方法中設置日誌記錄級別嗎?

+0

您可以聲明自己的記錄級別並在該方法中使用它。另一種方法是有點瑣碎,並在方法中提高日誌級別(通過Logger.setLevel()),但它確實很聰明 – BigMike

回答

6

您可以更改該類的級別配置,但不能更改類中的特定方法。做你想做的事的唯一方法是在該方法內使用不同的記錄器,然後在不同的級別配置它。

希望這會有所幫助。

0

我不認爲這是更多鈔票直接改變測井方法只有一個方法

3

你不能改變在每個方法的基礎上的日誌記錄級別。 「記錄器」是控制粒度的最佳級別。通常情況下,記錄器實例和類之間存在一對一的關係......儘管這取決於應用程序的編碼方式。

如果您可以更改代碼,我建議您爲嘈雜的方法創建特殊的記錄器對象,以便您可以獨立於使用現有記錄器的其他代碼來控制它。 (或者,也許只是改變了方法的記錄器調用)。

如果你不能改變的代碼,你可能不得不求助於「黑客」如後處理的日誌文件,或寫作和配置自定義Appender抑制了不需要的日誌消息。

-1

這是可能的。看到我對OP的評論。

技巧是創建一個自定義級別(小於TRACE)(如here中所述)並在非常詳細的方法中使用該日誌級別。

Ofc在該方法中不會使用Logger快捷方式登錄方法,但應使用Logger.log(Level,Object)和Logger.log(Level,Object,Thowable)方法。

相關問題