0
- 由於函數在託管線程池中執行,MDC並不總是在playframework中工作。
- 在這種情況下,建議在向執行程序提交任務之前,在原始(主)線程上調用MDC.getCopyOfContextMap()。
- 但是線程池由playframework管理,我不能在原始線程上調用mDC.getCopyOfContextMap()。
- 是否有一些解決方案的Java?或者我可以爲MDC添加一個方面,因爲我可以從上下文手動獲取需要的數據,以及如何操作?謝謝
在我們的項目中,我們使用上下文來傳遞traceId。我發現了兩個解決方案來解決這個問題。 1.自定義HttpContextExecution 2.自定義記錄器 -------------------------------------- --- 1.編寫一個類來實現scala.concurrent.ExecutionContextExecutor並模仿play.core.j.HttpExecutionContext的方法。 2.只需包裝記錄器,並將從上下文獲得的數據放入MDC –