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

一、信息

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 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后,问题圆满解决。

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

时间: 2024-11-07 10:50:45

IDEA运行Tomcat,控制台日志乱码的相关文章

tomcat 控制台中文乱码问题解决办法寻觅

看了很多种解决办法,然而并没有解决 如下面这个: Tomcat 控制台UTF-8乱码问题 1.修改cmd的编码格式 快捷键win+R打开运行程序,输入regedit打开注册表,找到以下路劲并且修改. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor],新建一个字符串值,key-value如下: "autorun"="chcp 65001",之后重新打开cmd即可. 2.修改Tomcat bin目录下st

IDEA中 tomcat 控制台中文乱码解决 及GsonUtils无法转换时间格式

IDEA中 tomcat 控制台中文乱码解决 1.找到tomcat 安装目录下的 conf /logging.properties 文件打开 2.将 java.util.logging.ConsoleHandler.encoding = UTF-8 修改为 java.util.logging.ConsoleHandler.encoding = GBK 3.保存后 重启idea ————————————————GsonUtils需添加时间模式 datePattern指定模式 原文地址:https:

解决Tomcat控制台输出乱码问题

解决Tomcat控制台输出乱码问题 打开Edit Configuration,在VM options一栏输入 -Dfile.encoding=UTF-8 然后到IDEA的bin目录找到 idea64.exe.vmoptions 同样添加到文末 figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max-width: 100%; vertical-align:

MyEclipse中Tomcat控制台打印乱码解决方案

问题背景: 在MyEclipse中开发tomcat版web程序,程序中通过网络请求,从远程服务器获取了一段字符串,显示为乱码(含中文).初步分析是因为远程服务器发送过来的字符流是传输内容的UTF-8编码,而客户端获得字符流后,以JVM默认的编码重新解析为字符串,因服务器-客户机编码不一致,而导致了乱码问题. 根据经验,我们知道: Java虚拟机中字符串编码默认跟随操作系统,中文版的Windows系统编码为GBK,Linux系统为UTF8,如果需要手动设定编码,可以在JVM启动时添加以下参数: -

【转】window 服务器的Tomcat 控制台日志保存到日志文件

    原文链接:https://www.cnblogs.com/Warmsunshine/p/6236076.html 在Linux系统中,Tomcat 启动后默认将很多信息都写入到 catalina.out 文件中,我们可以通过tail  -f  catalina.out 来跟踪Tomcat 和相关应用运行的情况. 在windows下,我们使用startup.bat启动Tomcat以后,会发现catalina日志与Linux记录的内容有很大区别,大多信息只输出到屏幕而没有记录到catalin

部署tomcat在windows服务器下,将tomcat控制台日志记录到日志文件中

在Linux系统中,Tomcat 启动后默认将很多信息都写入到 catalina.out 文件中,我们可以通过tail  -f  catalina.out 来跟踪Tomcat 和相关应用运行的情况. 在windows下,我们使用startup.bat启动Tomcat以后,会发现catalina日志与Linux记录的内容有很大区别,大多信息只输出到屏幕而没有记录到catalina.out里面. 本文的内容就是要实现在windows下,将相关的控制台输出记录到后台的catalina.out文件中以便

windows下启动tomcat,日志乱码问题,日志架构springboot+logback

最近在做架构迁移工作,将原有springmvc项目调整至springboot架构上,迁移完后,发现用springboot以jar包形式启动正常,用tomcat去启动时日志乱码,但是项目部署至Linux环境启动也正常,以下是日志乱码代码: <?xml version="1.0" encoding="UTF-8"?><configuration><include resource="org/springframework/boot

tomcat 启动日志乱码,idea中运行Tomcat也出现中文乱码:“淇℃伅”

打开到tomcat安装目录下的conf/文件夹 修改logging.properties文件, 找到 java.util.logging.ConsoleHandler.encoding = utf-8 更改为 java.util.logging.ConsoleHandler.encoding = GBK 参考:https://www.cnblogs.com/Yin-BoKeYuan/p/10320622.html 原文地址:https://www.cnblogs.com/116970u/p/11

TOMCAT控制台日志(startup.bat)输出到指定文件中

1 .修改startup.bat第42行 call "%EXECUTABLE%" start %CMD_LINE_ARGS% 为 call "%EXECUTABLE%" run %CMD_LINE_ARGS% >> ..\logs\my.txt 然后在此启动tomcat,再次查看catalina.txt,预期的信息果然如约而至! 2. 如果要每次启动的时候重新输入不同的文件,可对上面代码进行修改如下,加上红色部分运行startup.bat会一闪而过: c