使用log4j2.xml中的文件追加器生成的日志文件格式在Linux服务器上具有二进制字符集

时间:2019-01-05 20:00:01

标签: spring-boot log4j

我们有多个spring-boot服务,为了进行日志记录,我们使用log4j2.xml。我们的log4j2.xml包含控制台和文件附加程序,我们通过docker映像将这些服务部署到AWS上的HA代理,这些代理基本上是基于Linux的计算机。

我面临的问题是对于某些服务,日志文件字符集已以二进制格式创建,并且正在生成特殊字符,因此我们无法将日志发送给splunk。在id下面的我的log4j2.xml中,我特别指定了文件格式为UTF-8,但仍会创建Binary。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info" monitorInterval="60">
<Properties>
    <Property name="log-path">${sys:APP_LOG_PATH}</Property>
    <Property name="appName">${sys:SPRING_APPLICATION_NAME}</Property>
    <Property name="envName">${sys:SPRING_PROFILES_ACTIVE}</Property>
</Properties>
<Appenders>
    <Console name="Console-Appender" target="SYSTEM_OUT">
        <PatternLayout>
            <pattern>
            %d{yyyy-MM-dd HH:mm:ss.SSS}{GMT} [%-5level] [%t] %c{1} - %msg%n
            </pattern>
            <charset>US-ASCII</charset>
        </PatternLayout>
    </Console>
<File name="File" fileName="${log-path}/${appName}-${envName}--${date:yyyy-MM-dd-HH-mm-ss-SSS}.log" append="true">
<PatternLayout pattern="%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n" charset="UTF-8" />
    </File>
</Appenders>
<Loggers>
    <Root level="INFO" additivity="false">
        <AppenderRef ref="Console-Appender" level="WARN" />
        <AppenderRef ref="File" level="INFO" />
    </Root>
    <Logger name="com.tmo.eus" level="INFO" additivity="false">
        <Appender-ref ref="Console-Appender" />
        <AppenderRef ref="File" />
    </Logger>
    </Loggers>
 </Configuration>

让我知道是否还有其他方法可以明确指定文件格式,使其遵循相同的字符集。

0 个答案:

没有答案