Mapped Diagnostic Context (MDC) - The first sight

 Log4j提供能在不同的scope中也能夠log 資訊來輔助tracking logs。

假設想要log執行transaction前後的資訊在同一行raw log中,藉由MDC 這個map去put欲保留的參數與值,並在執行完畢後clear,就會在執行的當下將保留的參數保留在thread中。即便暫存是implement 在threadLocals上去確保thread-safty,但因為thread都是從thread pools拿取,因此clean這件事情變得重要。
改善的方法是可以在ThreadPoolEcxecutor去override afterExecute讓每次執行完都做 MDC.clean()。

reference:

留言

這個網誌中的熱門文章

[專案] 銀行端末系統

如何在MacOS 中自由切換不同Python版本 - pyenv + virtualenv

用 C# 控制 Win7 輸入法