如何使用MDC with playframework for java
问题描述:
- 由于函数在托管线程池中执行,MDC并不总是在playframework中工作。
- 在这种情况下,建议在向执行程序提交任务之前,在原始(主)线程上调用MDC.getCopyOfContextMap()。
- 但是线程池由playframework管理,我不能在原始线程上调用mDC.getCopyOfContextMap()。
- 是否有一些解决方案的Java?或者我可以为MDC添加一个方面,因为我可以从上下文手动获取需要的数据,以及如何操作?谢谢
在我们的项目中,我们使用上下文来传递traceId。我发现了两个解决方案来解决这个问题。 1.自定义HttpContextExecution 2.自定义记录器 -------------------------------------- --- 1.编写一个类来实现scala.concurrent.ExecutionContextExecutor并模仿play.core.j.HttpExecutionContext的方法。 2.只需包装记录器,并将从上下文获得的数据放入MDC –