0
- MDCは、マネージドスレッドプールで機能が実行されるため、常にplayframeworkで動作するとは限りません。
- そのような場合、MDC.getCopyOfContextMap()は、元の(マスター)スレッドで実行されてから、エグゼキュータにタスクをサブミットすることをお勧めします。
- しかし、スレッドプールはplayframeworkによって管理されているため、元のスレッドのMDC.getCopyOfContextMap()を呼び出すことはできません。
- Java用のソリューションはありますか?または私は手動でコンテキストから必要なデータを得ることができるMDCのためのアスペクトを追加できますか?ありがとう
プロジェクトでは、contextを使用してtraceIdを渡します。そして私はこの問題を解決する2つの解決策を見つけました。 1. HttpContextExecutionをカスタマイズします。 2.ロガーをカスタマイズします。 -------------------------------------- --- 1. scala.concurrent.ExecutionContextExecutorを実装し、play.core.j.HttpExecutionContextのメソッドを模倣するクラスを作成します。 2.ロガーをラップし、コンテキストから取得したデータをMDCに入れます –