Java Log4j2-如何向keyValuePair值添加消息和日志级别
预期结果: 我希望我的日志在keyValuePair中存储以下数据: “@timestamp”:“05-11-2020 17:24:29.895”, “@Message”:“日志消息”, @LogLevel:“信息” 我遇到的问题是,在KeyValuePair部分,我无法通过日志的消息字段和日志级别获取事件查找 下面是我当前的配置文件:Java Log4j2-如何向keyValuePair值添加消息和日志级别,java,log4j2,Java,Log4j2,预期结果: 我希望我的日志在keyValuePair中存储以下数据: “@timestamp”:“05-11-2020 17:24:29.895”, “@Message”:“日志消息”, @LogLevel:“信息” 我遇到的问题是,在KeyValuePair部分,我无法通过日志的消息字段和日志级别获取事件查找 下面是我当前的配置文件: <?xml version="1.0" encoding="UTF-8"?> <Configurati
<?xml version="1.0" encoding="UTF-8"?>
<Configuration package="log4j2.test" status="info">
<Appenders>
<Console name="ConsoleRuleLogger" target="SYSTEM_OUT">
<JsonLayout complete="false" compact="false" properties="true" objectMessageAsJsonObject="true">
<KeyValuePair key="@timestamp" value="${date:dd-MM-yyyy HH:mm:ss.SSS}" />
<KeyValuePair key="@Message" value="${message}" />
<KeyValuePair key="@LogLevel" value="${level}" />
</JsonLayout>
</Console>
</Appenders>
<Loggers>
<Logger name="org.reflections" level="off" additivity="false">
<AppenderRef ref="ConsoleRuleLogger" />
</Logger>
<Root level="info">
<AppenderRef ref="ConsoleRuleLogger"/>
</Root>
</Loggers>
</Configuration>
我还尝试对KeyValuePair进行以下更改:
<KeyValuePair key="@Message" value="$${message}" />
<KeyValuePair key="@LogLevel" value="$${level}" />
及
我知道我可以创建自己的地图,并通过这些字段将其传递到消息中,但这不是期望的结果。在log4j-core-2.11.2版本中,您可能需要: 将属性
ip
放入MDC:
MDC.put("ip","127.0.0.1");
MDC.put("ip","127.0.0.1");
<JsonLayout compact="true" eventEol="true">
<KeyValuePair key="ip" value="$${ctx:ip}"/>
</JsonLayout>