2012-12-19 147 views
13

我有一個使用slf4j作爲日誌外觀的應用程序。現在我想在將傳輸發送到基礎日誌記錄系統之前攔截所有錯誤消息。是否有可能爲slf4j做到這一點?我查看了文檔,看到我們可以在實現中更改Appender(如log4j)以實現此目的,但是我們可以在門面級別本身執行此操作嗎?攔截執行基本的東西,如遞增錯誤消息的數量的全局計數器等。攔截日誌消息slf4j

+1

這聽起來不像是一個很好的設計決定。將來,您可能想要使用配置關閉此功能;也許你有一個特定的要求/限制,你想與我們分享。 –

+1

這個要求和我提到的一樣簡單。查看錯誤日誌並在滿足閾值時發出通知?我在尋找一點,我發現特定的Appender有點這樣做的實現[鏈接](http://metrics.codahale.com/manual/logback/) – user1916312

回答

5

在SLF4J API中沒有這樣做。

但是,如果您的記錄器是Logback,您可以使用Filter,如TurboFilter

如果你不使用Logback,你可能需要類似AspectJ攔截器的東西。

+0

如果特定的用例是獲取日誌指標,那裏是可以從Codahale Metrics [link](http://metrics.codahale.com/manual/logback/)獲得的appender。 – user1916312