【发布时间】:2018-04-03 14:45:22
【问题描述】:
我有一个使用 SLF4J 设置日志记录的 Spring MVC 应用程序。我使用两个不同的方面(使用 spring-aop)进行日志记录,一个记录所有传入的 http 请求,另一个记录异步任务。异步任务使用 ExecutorService 启动。
我的理解是,当您使用 ExecutorService 时,衍生线程的 MDC 将不会继承已设置的值。但似乎确实如此。很公平。我只是在我的子线程中调用 org.slf4j.MDC.clear() 来重置这些值。
我的问题是我在生成的子线程中设置的值也显示在原始父级中strong> 线程的 MDC。
这是正常的,还是我做错了什么?有什么办法可以预防吗?
【问题讨论】:
-
您是否非常介意分享一些代码,最好是MCVE?这是 StackOverflow。谢谢你。另一个问题:您在 SLF4J 下使用哪种日志记录框架。 Logback 还是 Log4J?顺便说一句,我修正了你的错字,你在主题和正文中写了“sl4j”。现在也许 SLF4J 专家更容易找到您的问题。
标签: spring-mvc aop slf4j mdc