我有這個日誌相當嚴重的Web應用程序。我們已經爲每個請求線程實施了對MDC
的調用,以便能夠在我們的日誌中跟蹤用戶。記錄可選鍵值
一個的LogMessage可以看看如下:
INFO [2017-10-09 10:10:55,841] user_uuid=123-123-123 com.myapp.SomeClass: Some log message...
現在的問題是,大部分的時間,沒有當前用戶的存在,我們沒有在上面的日誌例子中user_uuid
現場使用。因此,相反,它會是這樣的:
INFO [2017-10-09 10:10:55,841] user_uuid= com.myapp.SomeClass: Some log message...
有沒有,如果沒有MDC值不寫在日誌中的MDC鍵&值的方法嗎?一些日誌格式我還沒有找到?
我希望它看起來像這樣,如果沒有MDC價值發現:
INFO [2017-10-09 10:10:55,841] com.myapp.SomeClass: Some log message...
以上(MDC)的實例配置,像這樣:
%-5p [%d{ISO8601,UTC}] user_uuid=%mdc{user_uuid:-} %c: %m%n%rEx
您可以只顯示完整的MDC(這當然要求您只存儲重要信息),那麼它只會記錄存在的內容。在你的例子中,你已經對'user_uuid ='部分進行了硬編碼,所以這不會去任何地方。 – Kayaman
請參閱https://stackoverflow.com/questions/24616745/how-to-conditionally-add-text-from-mdc-on-a-log4j-pattern以獲得重複。 – Kayaman