win10操作系统下:
<appender name="DETAIL" class="ch.qos.logback.core.rolling.RollingFileAppender" additivity="false">
<File>${LOG_HOME}/${APP}_detail.log</File>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} - %m%n</pattern>
<charset>UTF-8</charset>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${APP}_detail.log.%d{yyyyMMdd}</fileNamePattern>
</rollingPolicy>
</appender>
重点是上述xml中的<charset>UTF-8</charset>
1.假设启动项目之前没有日志文件,那么一开始指定为utf-8,也就是加入了<charset>UTF-8</charset>,启动项目,首次生成的日志文件的编码格式也是UTF-8,如果此时把<charset>UTF-8</charset>去掉,再启动项目,中文将会乱码
2.假设启动项目之前没有日志文件,那么一开始并没有指定日志编码格式,启动项目,首次生成的日志文件的编码格式将跟随操作系统决定,我是再win10操作的,此时日志编码为ANSI。如果此时把<charset>UTF-8</charset>加上掉,再启动项目,中文将会乱码。