分析 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.xxx.log |
manager 应用日志 |
host-manager.xxx.log |
host-manager 日志 |
✅ 一般优先看 catalina.out
grep -n "2026-01-21 14:" catalina.out
ERROR
Exception
Caused by
SEVERE
java.lang.
at org.apache.
at com.xxx.
SEVERE: Servlet.service() for servlet [xxx] threw exception
java.lang.NullPointerException
at com.xxx.UserService.getUser(UserService.java:45)
✅ 第一行异常通常不是根因
Caused by: java.sql.SQLException: Connection refused
at com.mysql.cj.jdbc.ConnectionImpl.connect
✅ 最后一个 Caused by 才是真正原因
Address already in use
Unsupported major.minor version
✅ 解决:
netstat -anp | grep 8080
java -version
java.lang.OutOfMemoryError: Java heap space
或
java.lang.OutOfMemoryError: Metaspace
✅ 解决:
catalina.sh / setenv.sh-Xms512m
-Xmx1024m
-XX:MetaspaceSize=128m
-XX:MaxMetaspaceSize=256m
org.apache.catalina.core.StandardContext.startInternal
SEVERE: Error deploying web application directory
或
Context [] not found
✅ 检查:
web.xml@WebServlet 路径javax.servlet.ServletException
Caused by: java.lang.NullPointerException
✅ 分析:
Unable to create initial connections of pool
Timeout waiting for connection
✅ 检查:
tail -f catalina.out
grep -i exception catalina.out
grep -i "SEVERE\|ERROR" catalina.out
sed -n '/2026-01-21 14:00/,/2026-01-21 14:10/p' catalina.out
✅ 90% 问题都能这样解决
SEVERE: Servlet.service() for servlet [spring] in context threw exception
org.springframework.jdbc.CannotGetJdbcConnectionException
Caused by: java.net.ConnectException: Connection refused
url / port / firewall如果你愿意,可以直接:
我可以帮你逐行分析。