定位 Tomcat 报错日志,一般按**“先看哪、再看什么、怎么缩小范围”的思路来,下面给你一套实战型排查流程**,适用于大多数 Tomcat 启动失败、访问 404/500、内存溢出等问题。
$TOMCAT_HOME/logs/
常见文件:
| 文件名 | 作用 |
|---|---|
catalina.out |
最重要,标准输出 + 错误日志 |
catalina.yyyy-mm-dd.log |
按日期的 Tomcat 日志 |
localhost.yyyy-mm-dd.log |
应用级异常 |
localhost_access_log.txt |
访问日志(类似 Nginx access log) |
manager.xxx.log |
manager 应用日志 |
host-manager.xxx.log |
host-manager 日志 |
✅ 80% 的问题都在 catalina.out
tail -n 200 catalina.out
重点看:
Server startup in xxx ms ✅ 成功ERROR、Exception、Failed⚠️ 不要被后面的异常迷惑,找第一个异常
搜索关键字:
grep -n "Exception" catalina.out
grep -n "Error" catalina.out
重点看:
错误示例:
Address already in use
定位:
netstat -tunlp | grep 8080
或:
lsof -i:8080
解决:
server.xml看:
localhost.yyyy-mm-dd.log
常见原因:
错误示例:
java.lang.OutOfMemoryError: Java heap space
定位:
catalina.outPermGen / Metaspace解决:
# bin/catalina.sh
export JAVA_OPTS="-Xms512m -Xmx1024m -XX:MetaspaceSize=128m"
错误示例:
ClassNotFoundException
NoClassDefFoundError
定位:
WEB-INF/lib/
检查顺序:
webapps/ 下是否有项目server.xml 中是否配置 <Context>sed -n '/2026-01-20 10:00/,/2026-01-20 10:30/p' catalina.out
tail -f catalina.out
grep -i error catalina.out
conf/logging.properties
org.apache.catalina.level = FINE
或应用使用 log4j / logback 时:
<root level="DEBUG">
先看 catalina.out
再找第一个 Exception
看 Caused by
结合时间点
再查应用日志
你可以直接贴:
catalina.out 报错片段(100 行以内)我可以直接帮你分析是哪一行导致的,并给出解决方案 ✅