温馨提示×

为什么tomcat日志不停增长

小樊
48
2026-10-05 13:58:16
栏目: 智能运维

Tomcat 日志不停增长,通常不是“Bug”,而是日志产生速度 > 清理/轮转速度,或配置导致日志被持续写入。下面按常见原因从高到低说明:


一、最常见原因

1️⃣ 应用一直在打日志(DEBUG / INFO 级别)

很多项目默认日志级别太低:

  • log4j / logback 设置为 DEBUG 或 INFO
  • 请求量大时,日志会疯狂增长

✅ 检查:

tail -f catalina.out

如果一直在刷请求、SQL、参数,就是这个问题。

✅ 解决:

  • 改为 WARN 或 ERROR
<root level="WARN">

2️⃣ catalina.out 没有日志切割(最经典)

Tomcat 默认不会切割 catalina.out

  • Linux 下靠 cronolog 或 logrotate
  • 如果没配置,文件会一直涨

✅ 检查:

ls -lh logs/catalina.out

✅ 解决(示例 logrotate):

/opt/tomcat/logs/catalina.out {
    daily
    rotate 7
    compress
    copytruncate
}

3️⃣ 异常被不断抛出(死循环 / 重试)

例如:

  • 定时任务异常
  • 连接池失败重试
  • MQ 消费失败

✅ 特征:

  • 日志内容高度重复
  • 都是 stack trace

✅ 解决:

  • 修代码逻辑
  • 加熔断 / 限流

4️⃣ 访问日志(access log)没关或量太大

localhost_access_log.*.txt

高并发下,这个文件增长极快。

✅ 解决:

  • 缩短保留时间
  • 或关掉(不推荐生产)

5️⃣ 日志框架配置错误(重复 Appender)

例如:

  • 同时配了 Console + File
  • 多个 logger 指向同一文件

✅ 表现:

  • 一条日志写多次
  • 文件翻倍增长

6️⃣ Tomcat 被 OOM / 频繁重启

  • 每次启动都打大量初始化日志
  • 重启 → 再打 → 再重启

✅ 检查:

grep -i "OutOfMemory" logs/catalina.out

二、快速自查清单 ✅

# 1. 看哪个文件最大
du -sh logs/* | sort -h

# 2. 实时看日志
tail -f logs/catalina.out

# 3. 看日志级别
grep -R "level" your-log-config.xml

三、如果你愿意,我可以帮你:

  • ✅ 看你的 server.xml / logback.xml
  • ✅ 判断是 Tomcat 问题还是业务代码问题
  • ✅ 给你一套标准生产日志方案

你现在是 catalina.out 涨,还是 某个业务日志涨?

0 踩