Splunk 中的日志消息显示为 ASCII 数字

Log messages in Splunk are shown as ASCII numbers

我们的 Spring 在 Docker 容器中启动应用程序 运行。我们使用例如登录log4j2.

当我在 Spring 引导应用程序中使用 Spring log4j2.xml 配置文件(见下文)时,日志语句在 Docker 日志。当我尝试在 Splunk 中阅读它们时,消息显示如下:

message=['123', '34' '116', ... ]

当我删除 log4j2.xml 文件时,所有日志都可以在 Docker 日志中再次读取,就像在 Splunk 中一样。

为什么会这样? 如何使消息在 Splunk 中可读?

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info">
    <Appenders>
        <Console name="Console-Appender" target="SYSTEM_OUT">
            <PatternLayout>
                <pattern>
                    [%-5level] %d{MM-dd HH:mm:ss.SSS} [%t] [%c{1} - %msg%n
                </pattern>
            </PatternLayout>
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="nl.mycompany.xyz" level="info" additivity="false">
            <AppenderRef ref="Console-Appender" />
        </Logger>
        <Root>
            <AppenderRef ref="Console-Appender" />
        </Root>
    </Loggers>
</Configuration>

将参数 Encoding 作为 UTF-8 添加到您的 log4j 配置(log4j2.xml 文件)。

<param name="Encoding" value="UTF-8" />

我已将以上属性添加到您的配置中-

<Appenders>
    <Console name="Console-Appender" target="SYSTEM_OUT">
    <param name="Encoding" value="UTF-8" />
        <PatternLayout>
            <pattern>
                [%-5level] %d{MM-dd HH:mm:ss.SSS} [%t] [%c{1} - %msg%n
            </pattern>
        </PatternLayout>
    </Console>
</Appenders>

您可以在此处找到不同配置的完整示例 - https://docs.oracle.com/cd/E10301_01/doc.1013/e10292/logging.htm