解決線上服務Logback日誌檔案中文亂碼問題
阿新 • • 發佈:2018-12-09
修改後的完整配置檔案:
<?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軟體中文亂碼問題