log4j 控制台和文件输出乱码问题解决
來(lái)源:http://www.coderli.com/log4j-console-file-garbled
一個(gè)小問(wèn)題,卻讓我感覺(jué)到,現(xiàn)在真正動(dòng)腦的人很少。。我來(lái)說(shuō)說(shuō)吧。 今天遇到一個(gè)小問(wèn)題,log4j輸出到文件亂碼,控制臺(tái)正常。顯然是編碼問(wèn)題導(dǎo)致。Google一搜,幾乎一水的說(shuō): 項(xiàng)目中l(wèi)og4j在英文版linux下輸出中文日志為亂碼。由于log4j配置文件中沒(méi)有設(shè)置編碼格式(encoding),所以log4j就使用系統(tǒng)默認(rèn)編碼。導(dǎo)致亂碼。解決方法是設(shè)置編碼格式UTF-8,方法為:log4j.appender.syslog.encoding=UTF-8這顯然是轉(zhuǎn)的,因?yàn)槿W(wǎng)幾乎一樣。這是properties配置的,還不是xml的。如果要xml的,配置如下:<appender name="A1" class="org.apache.log4j.RollingFileAppender"> <param name="Encoding" value="UTF-8" /> <param name="File" value="all.log" /> ...... </appender>
但是,我是已經(jīng)設(shè)置成UTF-8,而亂碼了。所以,上述答案是不嚴(yán)謹(jǐn)?shù)摹?/span>
先說(shuō)說(shuō)筆者的情況吧,其實(shí)筆者的問(wèn)題很簡(jiǎn)單,兩套log4j appender配置,一個(gè)輸出的文件,一個(gè)控制臺(tái),文件的配置了utf-8編碼,控制臺(tái)沒(méi)配置。現(xiàn)象,控制臺(tái)正常,文件亂碼。
-------------------------------------------
手頭的項(xiàng)目用LOG4J做日志的輸出處理,可不知怎么了,最近輸出的日志內(nèi)容里面居然出現(xiàn)了亂碼——問(wèn)號(hào),而且比較郁悶的是,從另一個(gè)類(lèi)的屬性里面讀出的中文確可以正常顯示,試了各種辦法,如給日志增加一項(xiàng)ENCODE為GBK,UTF-8,均不能解決此問(wèn)題,突然想到會(huì)不會(huì)是JAVA源文件的問(wèn)題了???
想到前此因?yàn)樵贛YECLIPSE里面看中文是亂碼,我曾經(jīng)調(diào)整過(guò)CONTENT TYPES(即window->preferences->general->content types),更改過(guò)text的編碼格式,即default encode,檢查之下,果然如此,于是我把默認(rèn)的JAVA SOURCES源下的GBK給刪除了,然后重新編譯,亂碼問(wèn)題解決,呵呵,放在此處,供有心之人在遇到此類(lèi)問(wèn)題的時(shí)候提個(gè)醒:)
總結(jié)
以上是生活随笔為你收集整理的log4j 控制台和文件输出乱码问题解决的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 句子录音打分代码参考
- 下一篇: Replace Type Code wi