1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > log4j 控制台和文件输出乱码问题解决

log4j 控制台和文件输出乱码问题解决

时间:2023-01-05 10:50:39

相关推荐

log4j 控制台和文件输出乱码问题解决

来源:/log4j-console-file-garbled

一个小问题,却让我感觉到,现在真正动脑的人很少。。我来说说吧。 今天遇到一个小问题,log4j输出到文件乱码,控制台正常。显然是编码问题导致。Google一搜,几乎一水的说:

项目中log4j在英文版linux下输出中文日志为乱码。由于log4j配置文件中没有设置编码格式(encoding),所以log4j就使用系统默认编码。导致乱码。解决方法是设置编码格式UTF-8,方法为:log4j.appender.syslog.encoding=UTF-8

这显然是转的,因为全网几乎一样。这是properties配置的,还不是xml的。如果要xml的,配置如下:

<appender name="A1" class="org.apache.log4j.RollingFileAppender"> <param name="Encoding" value="UTF-8" /> <param name="File" value="all.log" /> ...... </appender>

但是,我是已经设置成UTF-8,而乱码了。所以,上述答案是不严谨的。

先说说笔者的情况吧,其实笔者的问题很简单,两套log4j appender配置,一个输出的文件,一个控制台,文件的配置了utf-8编码,控制台没配置。现象,控制台正常,文件乱码。

-------------------------------------------

把文件的改成gbk,不乱了。控制台改成gbk,乱码。控制台改成utf-8,正常。到这里你可能糊涂了。怎么这么乱? 其实道理很简单,乱码,自然是编码不匹配。什么匹配?log4j用utf-8输入,你文件是不是utf-8接受的呢?检查一下,果然不是,改成utf-8编码,解决。 你可能要问了,那控制台的匹配在哪里?Eclipse控制台也有是编码的,我想你应该知道。Eclipse控制台是有编码,而且,不仅仅是有,你还可以为每个执行的程序,设置独立的编码。 自然,这里的编码匹配了,也就不会乱码了。参考二: /andy199999/articles/176221.html

手头的项目用LOG4J做日志的输出处理,可不知怎么了,最近输出的日志内容里面居然出现了乱码——问号,而且比较郁闷的是,从另一个类的属性里面读出的中文确可以正常显示,试了各种办法,如给日志增加一项ENCODE为GBK,UTF-8,均不能解决此问题,突然想到会不会是JAVA源文件的问题了???

想到前此因为在MYECLIPSE里面看中文是乱码,我曾经调整过CONTENT TYPES(即window->preferences->general->content types),更改过text的编码格式,即default encode,检查之下,果然如此,于是我把默认的JAVA SOURCES源下的GBK给删除了,然后重新编译,乱码问题解决,呵呵,放在此处,供有心之人在遇到此类问题的时候提个醒:)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。