Log4j乱码的问题

今天做了如下的测试,在一个类A中使用Log4j记录日志,在另一个类B中也使用log4j记录日志,然后在log文件中可以查看到两个log是追加到文件中,不会出现覆盖的现象(这个与配置信息相关),结果页面出现了乱码的现象,是什么原因导致的呢?

Java文件的编码方式是utf-8,然后在文件中写入的方式是中文,在使用Note++工具打开,里面显示为乱码,如果将显示编码方式改为utf-8则显示正常,也就是说写在文件的编码是utf-8,但是打开文件显示编码是按照GBK的方式;

如果将java编码方式改为GBK,然后写入log文件中,使用Note++打开页面显示正常

 

解决方案:

1、  log文件删除

2、  保证第一次写log的方式和之后写入log的方式一致,页面的编码与第一次写入的编码一致

 

由于log4j配置文件中没有设置编码格式(encoding),所以log4j就使用系统默认编码。导致乱码。
解决方法是设置编码格式UTF-8,方法为:
log4j.appender.syslog.encoding=UTF-8
syslog为你的logger名称)

猜你喜欢

转载自hbiao68.iteye.com/blog/1562211