温馨提示×

tomcat日志乱码怎么处理

小樊
42
2026-10-09 12:14:21
栏目: 智能运维

Tomcat 日志乱码通常是字符编码不一致导致的,常见于 Windows 环境或国际化部署。下面按「原因 → 解决方式」说明。


一、常见乱码位置

  1. catalina.out / 控制台日志乱码
  2. localhost.log / manager.log 乱码
  3. 页面输出乱码(非日志,但常被混淆)

二、最常见原因 & 解决办法

✅ 1. Tomcat 启动编码不对(最关键)

Tomcat 默认使用系统编码(Windows 常为 GBK)

解决方式一:修改 catalina.bat(Windows)

set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8"

解决方式二:修改 catalina.sh(Linux)

JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"

✅ 2. logging.properties 编码配置

Tomcat 使用 JULI 日志框架

编辑:

conf/logging.properties

添加或修改:

java.util.logging.ConsoleHandler.encoding = UTF-8
java.util.logging.FileHandler.encoding = UTF-8

✅ 3. IDE(IDEA / Eclipse)控制台乱码

即使 Tomcat 正常,IDE 也可能乱码

IntelliJ IDEA

  • Help → Edit Custom VM Options
-Dfile.encoding=UTF-8
  • 设置 → Editor → File Encodings → 全部 UTF-8

Eclipse

  • Run → Run Configurations → Tomcat
  • 添加 JVM 参数:
-Dfile.encoding=UTF-8

✅ 4. Windows 命令行本身编码问题

cmd 默认是 GBK

chcp 65001

然后再启动 Tomcat


✅ 5. 应用自身日志(log4j / logback)乱码

如果是业务日志乱码:

logback.xml

<encoder>
  <pattern>%d %msg%n</pattern>
  <charset>UTF-8</charset>
</encoder>

log4j2.xml

<PatternLayout charset="UTF-8" pattern="%d %msg%n"/>

三、推荐标准配置(通用)

✅ JVM:UTF-8
✅ Tomcat logging:UTF-8
✅ 应用日志:UTF-8
✅ 操作系统 / IDE:一致


四、快速自检

echo %JAVA_OPTS%
java -XshowSettings:properties -version 2>&1 | findstr encoding

如果你愿意,可以告诉我:

  • 操作系统(Windows / Linux)
  • Tomcat 版本
  • 日志文件名(catalina.out?)
  • 乱码示例截图或文字

我可以给你精确到文件的修改方案。

0 踩