修改后的完整配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!-- root日志等级控制模版配置 -->
<included>
<!-- 等级限制日志 -->
<appender name="${level}" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>${level}</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${diskStore}/${appName}-${HOSTNAME}-%d{yyyyMMddHH}_${level}_%i.log</fileNamePattern>
<maxFileSize>${maxFileSize}</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>${pattern}</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
</included>
其中最重要的是这句:<charset class="java.nio.charset.Charset">UTF-8</charset>
,配置中class="java.nio.charset.Charset"
一定要加上,否则不会生效。
设置完成后,查看日志文件的编码:
# 使用vim打开日志文件
ddzx@csv-wtcs01:/app/ddzx/mh-ddzx/logs/2018/09/12/12> vim info_0.log
# 使用以下命名日志文件的编码
:set fileencoding
# 会输出如下内容,可以看到编码设置已经生效
fileencoding=utf-8
注:如果编码设置好后,使用vim打开还是有乱码,可以参考这里:如何解决putty软件中文乱码问题