1. 程式人生 > >解決線上服務Logback日誌檔案中文亂碼問題

解決線上服務Logback日誌檔案中文亂碼問題

修改後的完整配置檔案:

<?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開啟日誌檔案
[email protected]:/app/ddzx/mh-ddzx/logs/2018/09/12/12> vim info_0.log

# 使用以下命名日誌檔案的編碼
:set fileencoding

# 會輸出如下內容,可以看到編碼設定已經生效
  fileencoding=utf-8 

注:如果編碼設定好後,使用vim開啟還是有亂碼,可以參考這裡:如何解決putty軟體中文亂碼問題