Tomcat9 控制台日志乱码问题,以及程序 log4j日志 乱码问题

首先,我用的Idea,在tomcat 8下,一切正常。换成 9以后,就出现了乱码的问题

在找到真正的问题之前,我在网上百度了N多的资料,都一一试过了,但是都不行。

比如:

1、修改了 windows 配置系统默认为 utf-8 编码。

2、修改 cmd的 默认编码

3、修改 tomcat   conf/ server.xml  文件。添加  URIEncoding="UTF-8"

4、修改 idea 下 vm options: -Dfile.enconding = UTF-8

5、修改 tomcat  bin目录下的   startup.bat  和 catalina.bat  相应的编码

注: 以上 5条,都不管用。 

6、直接修改 tomcat   conf/ logging.properties 文件

   添加:java.util.logging.ConsoleHandler.encoding = GBK  

这个方法,可以修正tomcat 启动乱码的问题。 但是,程序的 log4j配置下的,日志还是乱码的

然后。我把 log4j的配置文件,中的:

Encoding = UTF-8 全部修改为  Encoding = GBK 

然后,问题是解决了。 但这不是我想要的。 我希望,程序中所有文件的编码,都是UTF-8,保证程序的编码一致性。

然后,我比对了 tomcat8 和 tomcat 9 的基本配置文件。 发现 conf/ logging.properties 文件 有 编码的配置区别。

tomcat9 下的 conf/ logging.properties 文件

多了 5条   xxxxx.org.apache.juli.AsyncFileHandler.encoding = UTF-8 

而 tomcat8下,却没有。

然后,我就把这些 org.apache.juli.AsyncFileHandler.encoding = UTF-8   全部注释掉。

把之前的 配置的 GBK 也注释掉。

重启 tomcat。控制台一切正常。

修改 log4j 配置文件,为 UTF-8。 一切都正常。(事实,当把conf/ logging.properties  文件下的 encoding 全部去掉以后,

log4j配置文件,UTF-8/GBK  都可以正常的输出日志。)

自此,问题就解决了。 

注: 至于 tomcat 9 下,conf/ logging.properties 文件 配置了 5个 encoding = UTF-8 ,为什么会造成tomcat日志乱码,以及程序自身的日记也乱码。还没尝试了解。(猜想,应该是和 windows 默认的编码有问题。)

发布了111 篇原创文章 · 获赞 28 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_42697074/article/details/86563652