java - Log4j2 Howto 在自定义字段中从 MapMessage 查找值

标签 java log4j2

Map lookup docs假设 map 查找可用于从 LogEvents 中的 MapMessages 检索值。

JSONLayout docs说查找可用于检索值。

我正在尝试将这两部分结合起来:

logger.info(new MapMessage<>(Map.of("key1", "value1")));

我使用以下配置:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
    <Console name="Console" target="SYSTEM_OUT">
        <JsonLayout>
            <KeyValuePair key="additionalField1" value="constant value"/>
            <KeyValuePair key="additionalField2" value="${map:key1}"/>
        </JsonLayout>
    </Console>
</Appenders>
<Loggers>
    <Root level="debug">
        <AppenderRef ref="Console"/>
    </Root>
</Loggers>
</Configuration>

但该值未插值:

"additionalField1" : "constant value",
"additionalField2" : "${map:key1}"

我错过了什么吗?

最佳答案

我认为这是 log4j2 的一个错误,并在 Jira 中提出了一个问题: https://issues.apache.org/jira/projects/LOG4J2/issues/LOG4J2-2522

关于java - Log4j2 Howto 在自定义字段中从 MapMessage 查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53816404/

相关文章:

java - Autowired 注释在 AuthenticationSuccessHandler 中返回 null

java - 每条消息都需要 Cipher.init() 吗?

java - TSurgeon - 使用旧值重新标记节点

java - Log4j 2 根记录器覆盖一切?

java - log4j 2 向控制台附加程序添加多种颜色

java - Math.random() 解释

java - 为什么 Java 教程显式构造 boolean 值?

java - Log4j2 自定义布局

java - 使用 Log4j2 记录 Spring

java - 使用 log4j2 和 logback