解决线上服务Logback日志文件中文乱码问题

修改后的完整配置文件:



<included>
    
    <appender name="${level}" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>${level}level>
            <onMatch>ACCEPTonMatch>
            <onMismatch>DENYonMismatch>
        filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${diskStore}/${appName}-${HOSTNAME}-%d{yyyyMMddHH}_${level}_%i.logfileNamePattern>
            <maxFileSize>${maxFileSize}maxFileSize>
        rollingPolicy>
        <encoder>
            <pattern>${pattern}pattern>
            <charset class="java.nio.charset.Charset">UTF-8charset>
        encoder>
    appender>
included>

其中最重要的是这句:UTF-8,配置中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软件中文乱码问题

你可能感兴趣的:(Questions,从菜鸟到大神问题锦集)