在 Tomcat 中排查异常,核心就是找到并搜索日志文件。下面按常见场景给你一个实用指南。
$TOMCAT_HOME/logs/
常见文件:
catalina.out ✅(最重要,标准输出 + 异常堆栈)catalina.yyyy-mm-dd.loglocalhost.yyyy-mm-dd.loglocalhost_access_log.yyyy-mm-dd.txt(访问日志,不是异常日志)manager.yyyy-mm-dd.loghost-manager.yyyy-mm-dd.log✅ 90% 的异常都在
catalina.out
grep -n "Exception" catalina.out
grep -n "ERROR" catalina.out
grep -n "NullPointerException" catalina.out
grep -n "OutOfMemoryError" catalina.out
异常通常有很多行,不要只看一行。
grep -A 30 "Exception" catalina.out
sed -n '120,160p' catalina.out
tail -f catalina.out
Tomcat 默认格式:
2026-01-21 14:23:11.123 SEVERE [...]
sed -n '/2026-01-21 14:00/,/2026-01-21 15:00/p' catalina.out
如果你用了 logback / log4j:
/app/logs/
/var/log/your-app/
app.log
error.log
搜索方式一样:
grep -n "ERROR" app.log
| 现象 | 可能原因 |
|---|---|
| ClassNotFoundException | 包没部署 / 依赖缺失 |
| NullPointerException | 代码 bug |
| OutOfMemoryError | 内存泄漏 |
| Connection refused | 数据库 / Redis 没连上 |
| 404 | 路径或部署问题 |
| 500 | 后台代码异常 |
tail -f catalina.outgrep Exception如果你愿意,可以把:
贴出来,我可以直接帮你分析是哪一步出的问题。