温馨提示×

怎样抓取tomcat异常日志

小樊
44
2026-10-17 06:43:26
栏目: 智能运维

抓取(收集、获取)Tomcat 异常日志,通常可以从日志文件、控制台输出、远程日志、监控工具几个层面来做。下面按常见场景给你一套实用方案。


一、Tomcat 自带日志文件(最常用)

1. 查看 catalina.out(最重要)

Tomcat 的异常栈通常在这里:

tail -f /path/to/tomcat/logs/catalina.out

常见异常:

  • Exception
  • ERROR
  • Caused by

2. 按关键字抓取异常

grep -i "exception" catalina.out
grep -A 20 "NullPointerException" catalina.out

3. localhost 日志

logs/localhost.yyyy-mm-dd.log
logs/localhost_access_log.yyyy-mm-dd.txt

二、应用自身日志(如 log4j / logback)

如果你的项目用了日志框架:

log4j / logback 配置示例

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>logs/app-error.log</file>
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <level>ERROR</level>
        <onMatch>ACCEPT</onMatch>
        <onMismatch>DENY</onMismatch>
    </filter>
</appender>

只抓异常:

log.error("系统异常", e);

三、启动脚本抓取异常(适合后台运行)

1. 启动并重定向

./startup.sh >> logs/catalina.out 2>&1

2. 自动提取异常到单独文件

tail -f catalina.out | grep -A 30 "Exception" >> error.log

四、通过 JMX / 管理接口(进阶)

使用 JMX

  • Tomcat:type=Server
  • 可监控:
    • 线程异常
    • 内存溢出
    • 请求失败

工具:

  • JConsole
  • VisualVM
  • Prometheus + JMX Exporter

五、集中式日志方案(生产推荐)

常见组合

  • ELK(Elasticsearch + Logstash + Kibana)
  • EFK(Fluentd 替代 Logstash)
  • Loki + Grafana
  • Graylog

流程:

Tomcat日志 → Filebeat → Elasticsearch → Kibana

六、容器 / K8s 环境

kubectl logs tomcat-pod -f
kubectl logs tomcat-pod | grep Exception

七、常见异常类型速查

异常 可能原因
OutOfMemoryError 内存不足
ClassNotFoundException 包缺失
NullPointerException 代码 bug
404 / 500 配置或路由问题

如果你能告诉我:

  • ✅ Tomcat 版本
  • ✅ 是否用 Docker / K8s
  • ✅ 想要「实时抓取」还是「事后分析」
  • ✅ 是否要自动报警

我可以直接给你可复制的配置或脚本。

0 踩