天天看點

分享一次解決 IDEA 日志列印亂碼(log4j)的經驗

   平常的開發中,我們通常會用到日志列印進行開發,而常常開發中,通常用到的是 Log4j 來控制日志資訊,進而把日志資訊列印在控制台。

   小編平時使用 idea(2019.1版) 開發項目,經常用内置的 tomcat 伺服器,日志列印并沒有出現過亂碼現象,今天在使用外部 tomcat 作為伺服器進行一個demo時,進行日志列印,發生離奇的日志中文亂碼現象。如下亂碼現象:

  要列印的日志資訊:

分享一次解決 IDEA 日志列印亂碼(log4j)的經驗

  請求位址時,控制台輸出日志:

分享一次解決 IDEA 日志列印亂碼(log4j)的經驗

  發現日志資訊亂碼,上網度娘,很多方法就是在運作配置上加上 VM options 加上:-Dfile.encoding=UTF-8。

分享一次解決 IDEA 日志列印亂碼(log4j)的經驗

  原本以為問題可以解決,但設定後,再重新運作項目,一看控制台資訊,頓時一首“涼涼”送給了自己。

分享一次解決 IDEA 日志列印亂碼(log4j)的經驗

   小編再次上網查找資料,發現,也可以配置 idea bin目錄下的idea64.exe.vmoptions(64位系統,32位配置idea.exe.vmoptions),在檔案末尾添加:-Dfile.encoding=UTF-8,重新開機 idea,可以解決日志列印亂碼問題,如下:

分享一次解決 IDEA 日志列印亂碼(log4j)的經驗

  本以為可以解決的,但運作後,項目列印日志資訊還是亂碼,網上的解決方法基本都是這些了,隻能胡亂嘗試一通,因為之前小編把在項目運作配置的VM options 的屬性值-Dfile.encoding=UTF-8删除了,是以小編又在運作配置VM options 加上

-Dfile.encoding=UTF-8,再次運作項目,這次看控制台的日志資訊:

分享一次解決 IDEA 日志列印亂碼(log4j)的經驗

   日志列印資訊不再亂碼了。至于什麼原因,小編目前也不清楚,有知道何解的大神,也可以評論告知小編。

   總結今次解決日志亂碼問題:

  1.     配置idea檔案(idea安裝目錄的bin目錄下):64位系統配置idea64.exe.vmoptions,32位配置idea.exe.vmoptions,在檔案内容末尾添加:-Dfile.encoding=UTF-8。儲存後重新啟動idea(必須重新開機idea);
  2. 在項目運作配置屬性VM options,屬性值為:-Dfile.encoding=UTF-8。

   以上兩個方法,缺一不可,這次經驗純屬小編意外解決的,不知能否給大家幫助,如能同樣解決你的問題,請為小編點贊!

繼續閱讀