問題如下:
解決方案:
- 進入tomcat安裝目錄下的conf目錄下的
logging.properties
文件
比如我的路徑E:\apache-tomcat-9.0.30\conf\logging.properties
- 修改這個句柄,將原來的UTF-8改成
GBK
即可
1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
1catalina.org.apache.juli.AsyncFileHandler.encoding = GBK
- 如果要修改server控制台的亂碼,就修改下面這個句柄,將
UTF-8
改成GBK
即可
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = GBK
原理剖析:
tomcat中設置了多種日志顯示,根據logging.properties
文件我們知道有如下四種:
1catalina.org.apache.juli.AsyncFileHandler.encoding
2localhost.org.apache.juli.AsyncFileHandler.encoding
3manager.org.apache.juli.AsyncFileHandler.encoding
4host-manager.org.apache.juli.AsyncFileHandler.encoding
java.util.logging.ConsoleHandler.encoding
我們進入IDEA中關於tomcat的配置會發現的確存在5種日志配置
所以具體想要設置哪一種日志支持中文顯示,我們就把tomcat配置文件中對應的句柄編碼改成GBK即可。