MDC 不适用于 SLF4J

gka*_*ari 5 logging slf4j mdc

我们使用 SLF4J(使用 log4j)作为我们的日志框架。我们正在尝试利用 Log4j 支持的在线文档的 MDC 功能。

使用 SLF4J 时 MDC 不起作用。但是,当使用 log4j 时,它工作得很好。文档说明只要底层框架支持MDC,SLF4J就应该支持。

我们正在使用 SLF4J 1.6.4 ( slf4j-apislf4j-log4j12slf4j-simple已作为依赖项添加到我们的pom.xml) 中。

某处是否存在差异/不匹配?我们是否缺少任何依赖项?任何输入将不胜感激。

Mat*_*kan 0

根据 SLF4J 的 MDC javadoc,该类使用 NOPMDCAdapter(一个空实现)用于 slf4j-simple :

https://www.slf4j.org/api/org/slf4j/MDC.html

如果底层日志系统提供了MDC功能,那么SLF4J的MDC,即这个类,就会委托给底层系统的MDC。请注意,目前只有两个日志系统(即 log4j 和 logback)提供 MDC 功能。对于不支持MDC的java.util.logging,将使用BasicMDCAdapter。对于其他系统,即 slf4j-simple 和 slf4j-nop,将使用 NOPMDCAdapter。

对于 NOPMDCAdapter 文档:https://www.slf4j.org/api/org/slf4j/helpers/NOPMDCAdapter.html