温馨提示×

tomcat日志报错怎么排查

小樊
41
2026-09-20 21:48:29
栏目: 智能运维

Tomcat 日志报错排查一般可以按下面这套思路来,从看日志 → 定位错误 → 分析常见原因 → 验证修复逐步进行。


一、先搞清楚 Tomcat 有哪些日志

Tomcat 常见日志位置(以默认安装为例):

$TOMCAT_HOME/logs/
├── catalina.out        # 最常用,标准输出和错误
├── catalina.YYYY-MM-DD.log
├── localhost.YYYY-MM-DD.log
├── host-manager.log
└── manager.log

首选看 catalina.out,大多数启动失败、异常堆栈都在这里。


二、第一步:找到“真正的错误”

1. 启动失败

看:

  • catalina.out
  • 最后几行是否有 SEVERE / Exception

常见关键词:

Error
Exception
Caused by
Failed to start
Address already in use

2. 运行中报错

看:

  • localhost.log
  • 应用自身日志(如 logback / log4j)

三、常见错误 & 排查方向

1️⃣ 端口被占用

java.net.BindException: Address already in use

✅ 排查:

netstat -anp | grep 8080
# 或
lsof -i:8080

解决:

  • 杀掉占用进程
  • server.xml 端口

2️⃣ 应用启动失败(Context 加载失败)

SEVERE: Context [] startup failed

✅ 重点看:

  • Caused by 后面的根本异常
  • 是否是:
    • Spring 配置错误
    • 数据库连接失败
    • 缺少 jar 包

3️⃣ ClassNotFoundException / NoClassDefFoundError

java.lang.ClassNotFoundException: xxx

✅ 原因:

  • lib 没打进 war
  • 版本冲突
  • Tomcat lib 与应用 lib 冲突

✅ 检查:

WEB-INF/lib
$TOMCAT_HOME/lib

4️⃣ OutOfMemoryError

java.lang.OutOfMemoryError: Java heap space

✅ 调整:

CATALINA_OPTS="-Xms512m -Xmx1024m"

5️⃣ 404 / 空白页(不是 Tomcat 报错)

✅ 检查:

  • war 是否解压
  • 应用上下文路径
  • web.xml / @WebServlet

四、高效排查技巧

✅ 1. 从下往上看异常

异常栈:

Error
Caused by
Caused by  ← 看这里

✅ 2. 打开 debug 日志

conf/logging.properties 中调低级别

✅ 3. 本地复现

  • 同 JDK 版本
  • 同 Tomcat 版本
  • 同 war 包

五、你可以这样给我信息,我帮你精确定位

如果你愿意,可以发我:

  1. 报错日志(关键 20~50 行)
  2. Tomcat 版本
  3. JDK 版本
  4. 是启动报错还是访问报错
  5. 应用类型(Spring / Spring Boot / 原生 Servlet)

我可以直接帮你分析具体原因和修复方案

0