温馨提示×

ubuntu tomcat日志为何暴涨

小樊
35
2026-09-15 18:01:27
栏目: 智能运维

Ubuntu 上 Tomcat 日志“暴涨”通常是日志量异常增大,常见原因可以按「应用行为 / 配置问题 / 系统环境」三类来看:


一、应用层原因(最常见)

1. 应用大量打印日志

  • DEBUG / INFO 级别在生产环境未关闭
  • 循环中打印日志(如 for / whilelog.info
  • 异常被 catch 后仍然 printStackTrace() 或重复记录

✅ 检查:

grep -c "INFO" catalina.out

2. 频繁异常 / 错误

  • 接口超时
  • 数据库连接失败
  • 空指针、死循环
  • 定时任务异常重试

✅ 看错误集中点:

grep -E "ERROR|Exception" catalina.out | tail -n 100

二、Tomcat 日志配置问题

3. 使用了 catalina.out 且未轮转

catalina.out 默认不会自动分割,容易无限增长。

✅ 查看大小:

ls -lh /var/log/tomcat*/catalina.out

✅ 解决方式:

  • 使用 logrotate
  • 或改用 logging.properties 控制输出

4. 未配置日志滚动(log4j / logback)

  • 没有 maxFileSize
  • 没有 maxHistory
  • 没有 RollingFileAppender

✅ 示例(logback):

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  <fileNamePattern>app.%d{yyyy-MM-dd}.log</fileNamePattern>
  <maxHistory>7</maxHistory>
</rollingPolicy>

三、访问量 & 请求问题

5. 访问量突增

  • 爬虫
  • 接口被刷
  • 健康检查频繁

✅ 看访问日志:

tail -n 1000 /var/log/tomcat*/access.log | awk '{print $1}' | sort | uniq -c | sort -nr

6. 请求进入死循环 / 重转发

  • 过滤器死循环
  • 反向代理配置错误(Nginx ↔ Tomcat)

四、系统 & 环境问题

7. 磁盘满了导致日志异常

  • 写失败 → 异常 → 再写 → 循环

✅ 检查磁盘:

df -h

8. JVM 频繁 GC

  • 内存不足
  • Full GC 日志刷屏

✅ 检查:

grep -i "GC" catalina.out

快速排查清单(建议顺序)

  1. 看哪个日志文件最大
    du -sh /var/log/tomcat*/*
    
  2. 看最近日志内容
    tail -n 500 catalina.out
    
  3. 看是否有异常集中爆发
  4. 检查日志配置是否轮转
  5. 检查访问 IP 是否异常

如果你愿意,可以贴一下:

  • Tomcat 版本
  • 用的日志框架(log4j / logback / jul)
  • 哪个日志文件暴涨(catalina.outlocalhost_access_log?)
  • 日志片段(脱敏后)

我可以直接帮你定位到具体原因和改法

0