2016-08-15 88 views
-1

這個問題是關於日誌記錄的。我需要實現一個定製的日誌utils,它將用於多個服務和。這應該能夠在日誌事件中默認記錄少量屬性(服務名稱,端點URI訪問等),而無需實用程序用戶需要指定這些屬性。在java日誌記錄中默認記錄通用屬性

例如,用戶可能會說

mylogutil.debug( 「已下訂單」)

,但輸出應該是...

DEBUG |服務一個|/API /訂單| usweridone | oder_id- 1 |訂單已被放置

這背後的原因是除了日誌消息其他屬性可以從傳入的請求中通過過濾器,從屬性文件或env變量等中提取。並且每個記錄器語句條目都沒有包含這一點。

請幫助我以公平的方式來做到這一點。

回答

0

看起來像Thread Context可能會滿足您的需求。它也通過SLF4J API提供支持。請小心,因爲它已知有issues with thread pools。我建議你複習Using Log4j 2 in Web Applications

+0

感謝vempo,我發現MDC隨時在slf4j/log4j2中提供,並且我已經實現它來填充servlet過濾器和其他攔截器中的必需通用日誌屬性(如適用)。 http://www.slf4j.org/manual.html – crs

0

我在slf4j/log4j2中發現了MDC,我已經實現它來填充servlet過濾器和其他攔截器中的必要通用日誌屬性(如適用)。請參閱http://www.slf4j.org/manual.html for MDC