雖然核心log4j和slf4j庫帶有很多好東西,並且我可以構建自己的,但是我想知道是否有任何圖書館隨附有趣追加程序。是否有任何log4j或slf4j Appender框架提供額外的appenders
大多數appender似乎是提供某種連接到特定服務的橋樑,例如通過電子郵件發送消息或更新NT事件日誌。我正在考慮更抽象的記錄器,而不是中間件,但對現場系統的觀察者同樣有用。一個appender我認爲可能是有用
日誌記錄是通常是有用的,但它可以是一個痛苦由於,因爲相關的請求成功完成真正的arent必要消息的剪切體積
瘋狂的想法。一個想法是,只有記錄來自http請求的消息纔會有用,這些消息會在處理期間拋出一些異常。如果請求沒有失敗,那麼沒有東西會被添加到日誌中。自然這種appender需要一些東西來幫助控制它。
BufferControl {
FLUSH_NOW, // flush everything now in the buffer
FLLUSH, // flush everything when BufferingLogger.commit() is called.
CLEAR, // clear everything before
CLEAR_ALL; /// all past and future messages are ignored
IGNORE_AFTER; // ignore messages after this event.
IGNORE_BEFORE, // ignore messages before
CONTINUE, // just continue...
etc etc..
}
// implements could tell the bufferingappender to log messages because some exception was thrown etc.
LoggingEventWatcher {
BufferControl look(LoggingEvent, BufferingAppender);
}
// every logging event is passed to the logging event watcher which
BufferingAppender {
start();
reset(); // throw away everything in the buffer
commit(); // use returned BufferControl to flush or reset etc.
flush(); // unconditionally flush all messages now.
}
想象一下,如果只有在記錄某個異常時才能記錄所有消息。需要一個控制器來標記日誌記錄事務的開始,以及是否根據某些條件清除或刷新。
當然有些智能將需要重置緩衝區等。
你說的是什麼樣的追加程序的?另外slf4j是不同日誌框架之間的接口,比如commons-logging,log4j等。 – khmarbaise
我不太明白你想要什麼:如果你寫一些你所描述的智能邏輯,那麼爲什麼要限制自己到一個(或兩個) Java日誌框架?這些功能應該存在於某些日誌記錄後端(NT事件日誌,日誌的數據庫存儲...)中,應用程序應該將它們的日誌數據推送到該日誌中。 –
@js我不在乎哪個f/w提供給我appenders,因爲它很有可能使用slf4j作爲兩者之間的橋樑。我無論如何都在做更多性感的玩家之後。 –