码迷,mamicode.com
首页 > 其他好文 > 详细

IDEA运行Tomcat,控制台日志乱码

时间:2019-10-07 09:23:32      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:乱码   des   img   网上   server   ade   alt   注意   bee   

一、信息

IDEA:2019.1

Tomcat:9.0.24

二、问题描述

技术图片

server中日志正常显示,但Tomcat Catalina Log日志乱码。

 

三、解决思路

既然出了乱码,那肯定是编码不统一,所以我将IDEA中设置编码的地方(包括IDEA的配置文件)全都设置成了UTF-8,结果不但问题没有解决,我的server和tomcat catalina log全部出现了乱码。

https://www.cnblogs.com/aligege/p/10550432.html,翻到了这篇博客,博主思路很正确,不应当只修改IDEA中的编码,还要修改Tomcat日志配置文件中的编码,让它们统一才行。

技术图片

 

 这里的默认值是GBKSS,修改成UTF-8,依旧乱码。改为GBK后,server的日志正常了,tomcat catalina log还是乱码。

技术图片

 

应该是catalina的相关配置文件,网上查了好几篇博客都说修改这个文件,于是乎按照教程走,加上了-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8

if [ -z "$LOGGING_MANAGER" ]; then
  LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8"
fi

 

依旧乱码,这里修改的是logging_manager的值,那这一行代码是什么意思呢?跳到catalina.sh文件的最上方,tomcat不愧是顶级开源项目,人家这注释写的可真是太香了。

#   LOGGING_MANAGER (Optional) Override Tomcats logging manager
#                   Example (all one line)
#                   LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"

 

意思是覆盖tomcat的日志管理器记录,也就是说我们修改了日志管理器这里的编码,但问题并未解决,这时我注意到这行注释上方还有一段注释。

#   LOGGING_CONFIG  (Optional) Override Tomcats logging config file
#                   Example (all one line)
#                   LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"

 

意思是覆盖tomcat的日志配置文件,难道这里覆盖掉了?跳到文件下方代码。

# Set juli LogManager config file if it is present and an override has not been issued
if [ -z "$LOGGING_CONFIG" ]; then
  if [ -r "$CATALINA_BASE"/conf/logging.properties ]; then
    LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"
  else
    # Bugzilla 45585
    LOGGING_CONFIG="-Dnop"
  fi
fi

 

我们可以看到tomcat catalina log日志配置配置文件就是我们刚才修改过的logging.properties文件,仔细看了一下文件中的内容后,原来tomcat catalina log日志配置的代码就是下面这几行。

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

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 = UTF-8

2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8

3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
3manager.org.apache.juli.AsyncFileHandler.maxDays = 90
3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8

4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90
4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8

 

试着将这几行代码中的UTF-8全部改为GBK后,问题圆满解决。

 

IDEA运行Tomcat,控制台日志乱码

标签:乱码   des   img   网上   server   ade   alt   注意   bee   

原文地址:https://www.cnblogs.com/N1ckeyQu/p/11629167.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!