温馨提示×

tomcat日志乱码怎么回事

小樊
45
2026-09-20 21:51:27
栏目: 智能运维

Tomcat 日志出现乱码,通常不是 Tomcat 本身坏了,而是字符编码不一致导致的。下面按常见原因和解决办法给你梳理一下。


一、最常见原因

1️⃣ 系统/控制台编码与 Tomcat 不一致

  • Windows 默认是 GBK
  • Tomcat 默认按 UTF-8 输出日志
  • 结果:在 cmd / PowerShell 看日志就乱码

✅ 解决:

chcp 65001

然后再启动 Tomcat:

startup.bat

始终用 UTF-8 控制台(Windows Terminal / IDEA)


2️⃣ logging.properties 编码问题(最常见)

Tomcat 使用 JULI 日志,默认配置在:

conf/logging.properties

如果里面写的是 UTF-8,但系统不是,就会乱码。

✅ 解决方式(任选):

方式一:明确指定编码

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

或(Windows 中文系统):

java.util.logging.ConsoleHandler.encoding = GBK

3️⃣ IDEA / Eclipse 控制台乱码

即使 Tomcat 没问题,IDE 控制台也会乱码。

✅ IDEA 解决:

  • Settings → Editor → File Encodings
    • Global / Project / Default 都设为 UTF-8
  • Tomcat 配置 → VM options:
-Dfile.encoding=UTF-8

4️⃣ 应用日志(log4j / logback)乱码

如果你用的是:

  • log4j
  • logback
  • slf4j

需要在配置里指定编码:

logback 示例

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

5️⃣ 页面 → 后台 → 日志 编码链不一致

典型问题:

  • 页面 UTF-8
  • Tomcat 接收 GBK
  • 日志打印 UTF-8 → 乱码

✅ 解决: server.xml

<Connector
    URIEncoding="UTF-8"
    useBodyEncodingForURI="true" />

二、快速自检清单 ✅

你可以按顺序查:

  1. 操作系统编码
  2. Tomcat logging.properties
  3. IDE 控制台编码
  4. 应用日志框架配置
  5. 浏览器 / 接口编码

三、最常见的“一句话结论”

90% 的 Tomcat 日志乱码,都是 Windows GBK + UTF-8 冲突


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

  • 操作系统(Windows / Linux)
  • 启动方式(cmd / IDEA / Docker)
  • 用的日志框架(JULI / log4j / logback)

我可以直接给你精确配置

0