日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

解決Logback生成的日志文件不能顯示中文的問(wèn)題

 WindySky 2017-06-28
新的項(xiàng)目中使用logback+slf4j替換了原來(lái)的log4j+slf4j,并且是作為一個(gè)Web Application在tomcat中運(yùn)行,發(fā)現(xiàn)生成的日志文件中所有中文都是亂碼。

首先想到的解決方法就是logback中設(shè)置生成的日志文件的編碼。在網(wǎng)上找到了兩種設(shè)置,但是都不起作用

1. 設(shè)置Encoding。在appender中增加一行<Encoding>UTF-8</Encoding>,但是在啟動(dòng)中報(bào)錯(cuò),說(shuō)是不能識(shí)別Encoding元素。有人說(shuō)Encoding在0.9.22以后版本中已經(jīng)不能用了。于是就找到了第二種方法。

2. 在Encoder中設(shè)置charset。logback實(shí)現(xiàn)了集中不同的Encoder,其中LayoutWrappingEncoder中有一個(gè)charset屬性,并且有人提到可以通過(guò)charset設(shè)置日志文件編碼。于是就將encoder屬性修改為:

  1. <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">  
  2.     <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} : %p [%c] [%t] %m%n</pattern>  
  3.     <charset>UTF-8</charset>  
  4. </encoder>  

可是在啟動(dòng)時(shí)又提示找不到pattern。

因此兩個(gè)方法都以失敗而告終。可能是我沒(méi)有找到正確的設(shè)置方法,如果有成功設(shè)置的朋友請(qǐng)分享。 

最后,想到logback默認(rèn)應(yīng)該使用程序運(yùn)行時(shí)的編碼,也就是tomcat啟動(dòng)時(shí)的編碼,那么就可以通過(guò)設(shè)置tomcat啟動(dòng)時(shí)的JVM參數(shù)來(lái)更改編碼:

打開(kāi)catalina.bat,在代碼的第一行即set CATALINA_OPTS之前,增加一行:

set JAVA_OPTS=%JAVA_OPTS%  -Dfile.encoding=UTF-8

重新啟動(dòng)tomcat測(cè)試,日志文件正常。

linux

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多