分析 Tomcat 报错日志是排查 Java Web 应用问题的重要步骤。下面我从日志位置、关键日志类型、常见错误及分析方法、实战思路几个方面系统说明。
默认情况下,Tomcat 日志位于:
$TOMCAT_HOME/logs/
常见日志文件:
| 文件名 | 作用 |
|---|---|
catalina.out |
最重要,包含所有标准输出和错误 |
catalina.yyyy-mm-dd.log |
按日期分割的 Catalina 日志 |
localhost.yyyy-mm-dd.log |
应用级异常 |
localhost_access_log.yyyy-mm-dd.txt |
访问日志(类似 Nginx access log) |
manager.yyyy-mm-dd.log |
Manager 应用日志 |
host-manager.yyyy-mm-dd.log |
Host Manager 日志 |
✅ 优先看:catalina.out 和 localhost.*.log
典型错误日志结构:
SEVERE: xxx
java.lang.NullPointerException
at com.xxx.ClassName.method(ClassName.java:123)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:145)
重点关注:
SEVERE / ERROR:严重错误WARNING / WARN:警告INFO:正常信息java.net.BindException: Address already in use
✅ 分析:
✅ 解决:
netstat -tunlp | grep 8080
或
ps -ef | grep tomcat
org.apache.catalina.LifecycleException
Caused by: java.lang.ClassNotFoundException
✅ 常见原因:
web.xml 配置错误✅ 排查:
WEB-INF/libWEB-INF/classesweb.xmljava.lang.OutOfMemoryError: Java heap space
或
java.lang.OutOfMemoryError: PermGen space (JDK7)
java.lang.OutOfMemoryError: Metaspace (JDK8+)
✅ 分析:
✅ 解决:
-Xms512m -Xmx1024m
-XX:MetaspaceSize=128m
org.apache.jasper.JasperException
Unable to compile class for JSP
✅ 常见原因:
✅ 排查:
.java 文件The requested resource is not available
✅ 可能原因:
javax.servlet.ServletException
✅ 表示:
localhost.*.logCannot create JDBC driver of class ''
Communications link failure
✅ 排查:
context.xmltail -n 500 catalina.out
或
grep -n "ERROR" catalina.out
⚠️ 不要只看最后一行
Caused by| 现象 | 判断 |
|---|---|
| 应用启动失败 | 应用问题 |
| Tomcat 启动失败 | Tomcat / 环境 |
| 访问接口报错 | 应用 |
at com.example.UserService.login(UserService.java:45)
✅ 直接看这一行代码
修改:
$TOMCAT_HOME/conf/logging.properties
grep -R "NullPointerException" logs/
cp catalina.out catalina.out.bak
报错:
SEVERE: Context [] startup failed
Caused by: java.io.FileNotFoundException: /app/config/db.properties
✅ 分析:
✅ 解决:
Tomcat 日志分析 = 找时间点 + 找第一个异常 + 看 Caused by + 定位到业务代码
如果你愿意,可以把具体报错日志贴出来(脱敏即可),我可以帮你逐行分析、直接告诉你是哪一行代码的问题。