Log4j2 Howto 在自定义字段中从 MapMessage 查找值
Log4j2 Howto lookup values from MapMessage in custom fields
Map lookup docs 说地图查找可用于从 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
Map lookup docs 说地图查找可用于从 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