Tomcat 日志是定位问题的第一手资料,合理查看和分析日志可以迅速缩小故障范围。下面从日志种类、常见位置、关键日志内容、如何逐步定位问题几个方面来说明。
Tomcat 主要有以下几类日志:
这是最重要的日志,几乎所有启动、关闭、异常都在这。
文件位置(默认):
logs/catalina.out
或
logs/catalina.yyyy-mm-dd.log
主要内容:
✅ 排错首选
应用层面的异常。
文件:
logs/localhost.yyyy-mm-dd.log
常见内容:
用于分析请求是否正常到达 Tomcat。
文件:
logs/localhost_access_log.yyyy-mm-dd.txt
包含:
✅ 用来判断:
manager.*.loghost-manager.*.log一般不常用,除非使用 Tomcat 自带的管理页面。
看:catalina.out
重点找:
ERROR
Exception
Caused by
java.lang.NullPointerException
UnsupportedClassVersionError
常见原因:
Address already in use
看顺序:
1️⃣ localhost_access_log
GET /app/index.jsp HTTP/1.1 404
2️⃣ 确认:
3️⃣ 如果访问路径正确但仍 404:
web.xml看:catalina.out 或 localhost log
找:
Exception
Stack trace
Caused by
常见原因:
看:access log
关注:
IP - - [time] "GET /api/test" 200 1234
如果 access log 里都没记录,说明 请求没到 Tomcat(可能是 Nginx / 网络问题)。
看:catalina.out
典型日志:
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Metaspace
解决方向:
-Xms -Xmx -XX:MetaspaceSize
grep -i error catalina.out
grep -i exception catalina.out
tail -n 200 catalina.out
tail -f catalina.out # 实时查看
grep "2026-01-21 14:" catalina.out
❌ 只盯着应用日志,忽略了 catalina.out
❌ 日志很多就放弃,其实第一条 Caused by 最关键
❌ 不看 access log,分不清是 Tomcat 还是前置网关问题
✅ catalina.out 是核心,access log 判断是否到请求,localhost 看应用内部异常
如果你愿意,可以把具体报错日志贴出来,我可以直接帮你分析是哪一类问题。