Logback MDC 在运行时打印变量

Logback MDC print variables at runtime

我想知道是否可以从记录器调用中打印先前添加的 MDC 值?

示例:

MDC.put("user","tom")

log.info("Hello %X{user}");

而不是将其添加到布局模式中。

原因是我在别处调用了 MDC 并在我的逻辑末尾进行了记录,但我想有条件地记录不同的值。我知道解决方法可能是不同的附加程序。

由于 MDC 本质上是一个映射,您始终可以使用 .get() 来检索先前存储在其中的值:

MDC.put("user", "tom");

log.info("Hello, {}", MDC.get("user"));