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

摘要:
https://www.cnblogs.com/aligege/p/10550432.html在浏览了这篇博客后,这位博主有了一个正确的想法。他不仅应该修改IDEA中的代码,还应该修改Tomcat日志配置文件中的代码以使其统一#LOGGING_CONFIGOverrideTomcat的loggingconfigfile#Example#LOGGING_CONFIG=“-Djava.util.loging.CONFIG.file=$CATALINA_BASE/conf/LOGGING.properties”意味着覆盖Tomcat的日志配置文件。是否可以在此处覆盖它?

一、信息

IDEA:2019.1

Tomcat:9.0.24

二、问题描述

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

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

三、解决思路

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

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

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

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

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

应该是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 Tomcat's logging manager
#                   Example (all one line)
#                   LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"

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

#   LOGGING_CONFIG  (Optional) Override Tomcat's 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后,问题圆满解决。

四、遗留问题

之所以会出现乱码,肯定是编码格式不统一导致的。我们将tomcat的logging.properties配置文件中的编码格式都设置成了GBK,IDEA中能找到的设置编码的地方我都设置成了UTF-8,问题居然得到了解决。

五、猜想

IDEA中output输出的内容编码是GBK格式的,所以我们将tomcat输出的日志编码改为GBK后问题解决。但我确实没找到IDEA中关于output输出内容的编码设置。

免责声明:文章转载自《IDEA运行Tomcat,控制台日志乱码》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇mui 注意事项基于Linux平台的高级IO扩展函数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

IDEA界面太丑??尝试一下这几个风格

>>>>>>>>>>原文地址<<<<<<<<<<>>>>>>>>>>原文地址<<<<<<<<<<>>>...

idea右键没有git选项

网上很多说法,不过可能版本更新,新版本好像不管用,废话不多说,上图 点击下VCS——》Git——》commit File然后好像可以选下本地仓库的路径,好像是这样,刚刚操作完就完了,反正就这样的 然后顺便说下,关联了git后 绿色,已经加入控制暂未提交红色,未加入版本控制蓝色,加入,已提交,有改动(提交后就变回白色)白色,加入,已提交,无改动灰色:版本控...

开源物联网平台(Thingsboard)-运行

环境准备 已经编译过的代码环境,可参考前篇 编译 IDE Idea或Eclipse,本文使用Idea PG数据库 Postgresql 12+,本文使用Docker初始化 docker run --name tb_pg -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres:12   支持Html5...

本地安装配置Gradle及IDEA使用本地Gradle

一、下载Gradle   下载地址:http://services.gradle.org/distributions/  下载版本的bin.zip 二、配置环境变量 三、验证   在cmd模式下查看,出现以下信息,说明安装成功。 四、IDEA配置 1、在自定义目录下,打开cmd,新建.gradle目录,作为gradle下载的jar包仓库主目录。 mkdi...

Idea 软件使用快捷键归纳01

<1>CTRL+P 方法参数提示 <2>ctrl+/ 单行注释 <3>Ctrl+Alt+MIDEA 重复代码快速重构(抽取重复代码快捷键) <4>alt+enter自我修复,出现红色错误代码的解决方案(注意:光标必须定位在红色错误代码处) 可以实现自动导包 <5>ctrl+alt+L自动格式化代码...

IntelliJ IDEA 更新

  一. 下载最新版本的idea          1. 官网下载,官网地址:http://www.jetbrains.com/idea/download/#section=windows          2. 百度网盘直接下载:https://pan.baidu.com/s/1qmNhRI7lSo9G-QEMDPQZfg , 密码:1jxd   二....