Tomcat 日志乱码通常是字符编码不一致导致的,常见于 Windows 环境或国际化部署。下面按「原因 → 解决方式」说明。
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"
Tomcat 使用 JULI 日志框架
编辑:
conf/logging.properties
添加或修改:
java.util.logging.ConsoleHandler.encoding = UTF-8
java.util.logging.FileHandler.encoding = UTF-8
即使 Tomcat 正常,IDE 也可能乱码
Help → Edit Custom VM Options-Dfile.encoding=UTF-8
Run → Run Configurations → Tomcat-Dfile.encoding=UTF-8
cmd 默认是 GBK
chcp 65001
然后再启动 Tomcat
如果是业务日志乱码:
<encoder>
<pattern>%d %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<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
如果你愿意,可以告诉我:
我可以给你精确到文件的修改方案。