Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Log4j2-如何向keyValuePair值添加消息和日志级别_Java_Log4j2 - Fatal编程技术网

Java Log4j2-如何向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

预期结果: 我希望我的日志在keyValuePair中存储以下数据: “@timestamp”:“05-11-2020 17:24:29.895”, “@Message”:“日志消息”, @LogLevel:“信息”

我遇到的问题是,在KeyValuePair部分,我无法通过日志的消息字段和日志级别获取事件查找

下面是我当前的配置文件:

<?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>