我正在考慮使用SLF4j來集成多個日誌記錄框架。SLF4J調試級別配置+日誌框架集成
java.util.logging.Logger類有一個很好的方法,稱爲setLevel(Level newLevel)。它可以在類級別啓用日誌記錄配置,這有助於創建可讀和精簡的痕跡。
我在SLF4J框架中找不到等價物。有沒有? SLF4J記錄器接口不提供這種方法。我已經看到了StackOverflow上的其他問題,並且我已經閱讀了SL4F文檔,但是我無法得出明確的結論。
如果SLF4J不允許我正在尋找的微調,那麼SLF4J的真正好處是什麼?它似乎將綁定框架的有趣功能劃分爲最常見的弱和無用的分母...
如果是這樣,爲什麼我不應該將我所有的代碼轉換爲我最喜歡的Logging框架而不是SLF4J?
編輯:
好了,可能是我在抱怨SLF4J不在這裏回答我希望自私。然而,在使用SLF4j集成日誌框架方面,我仍然沒有看到太多的價值,因爲在這個過程中,人們無法訪問這些綁定框架中非常有趣的功能。我能看到的唯一的積極的補充是延遲創建日誌記錄消息打印的對象。
SLF4J是恕我直言,肯定不是許多世界上最好的,它是一個最小的共同點,最小的也是太適當的軟件工程。另一方面,現有的日誌框架過於設計並且經常錯過競爭對手提供的關鍵功能。
如果一個需要整合的日誌框架,我看到兩個選項與真正實用價值:1)選擇你最喜歡的日誌框架和你的代碼轉換爲這個框架或ii)創建自己的框架(很容易死人,它只花了我幾個小時)。
我的2美分。對於有不同意見的人我沒有問題。只是從我的實踐經驗中說明我的。
如果我理解正確,您正在尋找一種方法來定製特定類應記錄在哪個級別? >是的,我是。我的抱怨是,這個界面很差...我真的沒有它的價值......你知道有沒有更好的? – JVerstry 2011-05-07 21:56:48
你不能用SLF4J來做這件事,因爲這不是這個API的要點。如果你真的想在運行時配置日誌級別(*爲什麼?*),你必須使用底層框架API(Logback和Log4J都可以輕鬆實現)。但是我實際上從來不需要在運行時修改日誌記錄級別(靜態XML配置文件就足夠了) - 如果你這樣做,還有更多成熟的方法,比如JMX。 – 2011-05-07 22:13:28
好的謝謝。調試複雜代碼(JUnit測試,集成測試等)時,能夠配置日誌記錄級別非常有用。我不打算在運行時改變它。 – JVerstry 2011-05-07 22:22:03