温馨提示×

怎样解读Tomcat启动日志信息

小樊
34
2026-08-24 01:51:52
栏目: 智能运维

解读 Tomcat 启动日志的关键是:看阶段、看异常、看端口、看应用部署结果。下面按“从整体到局部”的方式系统说明,并给出常见日志示例和含义。


一、Tomcat 启动日志的位置

常见位置:

  • 标准输出
    catalina.out
    
  • 按日期拆分
    logs/catalina.2026-01-21.log
    
  • 应用日志
    logs/localhost.log
    logs/manager.log
    

✅ 建议先看 catalina.out,它是问题定位的核心。


二、正常启动日志的结构(典型流程)

1️⃣ JVM & 环境变量信息

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

✅ 含义:

  • Tomcat 版本
  • 操作系统
  • JDK 版本(非常重要)

2️⃣ 端口监听信息(关键)

INFO [main] org.apache.coyote.AbstractProtocol.init
Initializing ProtocolHandler ["http-nio-8080"]
INFO [main] org.apache.coyote.AbstractProtocol.start
Starting ProtocolHandler ["http-nio-8080"]

✅ 说明:

  • HTTP 端口:8080
  • 协议:NIO
  • 没有报错 = 端口绑定成功

⚠️ 如果这里失败,常见原因:

  • 端口被占用
  • 权限不足(如 80 端口)

3️⃣ 部署 Web 应用

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

✅ 含义:

  • WAR 包被成功解压并部署
  • 耗时 2.3 秒

4️⃣ Spring / 框架初始化(如果用了 Spring)

INFO  o.s.web.context.ContextLoader - Root WebApplicationContext initialized
INFO  o.s.b.w.e.t.TomcatWebServer - Tomcat started on port(s): 8080

✅ 说明:

  • Spring 容器初始化完成
  • 应用已就绪

5️⃣ 启动完成标志 ✅

INFO [main] org.apache.catalina.startup.Catalina.start
Server startup in [5678] milliseconds

✅ 说明:

  • Tomcat 完全启动
  • 总耗时 5.6 秒

三、常见异常日志解读(重点)

❌ 端口被占用

java.net.BindException: Address already in use

✅ 解决:

netstat -tunlp | grep 8080

或改端口:

<Connector port="8081" protocol="HTTP/1.1" />

❌ JDK 版本不匹配

UnsupportedClassVersionError

✅ 含义:

  • 编译版本 > 运行 JDK 版本

❌ 应用启动失败

SEVERE: Context [/demo] startup failed due to previous errors

✅ 重点:

  • 往上翻日志
  • Caused by

❌ 内存溢出

java.lang.OutOfMemoryError: Java heap space

✅ 解决:

export CATALINA_OPTS="-Xms512m -Xmx1024m"

四、日志级别含义

级别 含义
INFO 正常信息
WARN 潜在问题
SEVERE / ERROR 启动失败或严重错误
FINE / DEBUG 调试信息(默认不显示)

五、快速判断 Tomcat 是否启动成功 ✅

✅ 同时满足:

  1. 看到:
    Server startup in xxx ms
    
  2. 没有 SEVEREERROR
  3. 端口正常监听
  4. 访问:
    http://localhost:8080
    

六、实用排查技巧

✅ 快速定位错误:

grep -i error catalina.out
grep -i exception catalina.out

✅ 看应用是否真的部署成功:

ls webapps/

✅ 开启调试日志(不推荐生产):

logging.properties
org.apache.catalina.level = FINE

如果你愿意,可以:

  • 贴一段真实 Tomcat 启动日志
  • ✅ 或说明 Tomcat 版本 + 报错现象

我可以帮你 逐行解读并给出解决方案

0