解读 Tomcat 启动日志的关键是:看阶段、看异常、看端口、看应用部署结果。下面按“从整体到局部”的方式系统说明,并给出常见日志示例和含义。
常见位置:
catalina.out
logs/catalina.2026-01-21.log
logs/localhost.log
logs/manager.log
✅ 建议先看
catalina.out,它是问题定位的核心。
INFO [main] org.apache.catalina.startup.VersionLoggerListener.log
Server version: Apache Tomcat/9.0.85
Server built: Jan 10 2026
OS Name: Linux
Java Home: /usr/lib/jvm/java-11-openjdk
JVM Version: 11.0.21+9
✅ 含义:
INFO [main] org.apache.coyote.AbstractProtocol.init
Initializing ProtocolHandler ["http-nio-8080"]
INFO [main] org.apache.coyote.AbstractProtocol.start
Starting ProtocolHandler ["http-nio-8080"]
✅ 说明:
⚠️ 如果这里失败,常见原因:
INFO [main] org.apache.catalina.startup.HostConfig.deployWAR
Deploying web application archive [/opt/tomcat/webapps/demo.war]
INFO [main] org.apache.catalina.startup.HostConfig.deployWAR
Deployment of web application archive [/opt/tomcat/webapps/demo.war] has finished in 2,345 ms
✅ 含义:
INFO o.s.web.context.ContextLoader - Root WebApplicationContext initialized
INFO o.s.b.w.e.t.TomcatWebServer - Tomcat started on port(s): 8080
✅ 说明:
INFO [main] org.apache.catalina.startup.Catalina.start
Server startup in [5678] milliseconds
✅ 说明:
java.net.BindException: Address already in use
✅ 解决:
netstat -tunlp | grep 8080
或改端口:
<Connector port="8081" protocol="HTTP/1.1" />
UnsupportedClassVersionError
✅ 含义:
SEVERE: Context [/demo] startup failed due to previous errors
✅ 重点:
java.lang.OutOfMemoryError: Java heap space
✅ 解决:
export CATALINA_OPTS="-Xms512m -Xmx1024m"
| 级别 | 含义 |
|---|---|
| INFO | 正常信息 |
| WARN | 潜在问题 |
| SEVERE / ERROR | 启动失败或严重错误 |
| FINE / DEBUG | 调试信息(默认不显示) |
✅ 同时满足:
Server startup in xxx ms
SEVERE 或 ERRORhttp://localhost:8080
✅ 快速定位错误:
grep -i error catalina.out
grep -i exception catalina.out
✅ 看应用是否真的部署成功:
ls webapps/
✅ 开启调试日志(不推荐生产):
logging.properties
org.apache.catalina.level = FINE
如果你愿意,可以:
我可以帮你 逐行解读并给出解决方案。