2

NDC(嵌套诊断上下文)在:

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-ext -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-ext</artifactId>
</dependency>

使用 org.slf4j.MDC 实现。

在从 log4j2 实现迁移到使用 slf4j(现有 org.apache.log4j.NDC 到 org.slf4j.NDC)时,我遇到了如何在现有 PatternLayout 中引用 NDC 的问题:在我的 log4j2.xml 配置中,我有以下定义:

<PatternLayout pattern="[%d{MM-dd-yyyy HH:mm:ss,SSS zZ}] [%t] %x%n" />

最初上面的 '%x' 将引用来自 log4j 的 NDC。问题是如何在上面的 PatternLayout 中引用在 org.slf4j.NDC 实现中的 MDC 映射上创建的可能的“NDC”键集。我试图查看是否有办法对在 MDC(在 org.slf4j.NDC 中)上创建的“NDC”密钥进行后缀,但无法找到解决方案。(即类似 %X{NDC},但允许显示以 NDC 开头的所有键,例如在 org.slf4j.NDC 实现中创建的键:“NDC0”、“NDC1”、“NDC2”……)我不确定这是否可能?

4

0 回答 0