Tomcat 日志空间被占用,通常是由以下几类日志文件不断累积造成的:
1. catalina.out(最常见)
- 位置:
$CATALINA_HOME/logs/catalina.out
- 占用原因:
- 应用使用
System.out.println() 或日志框架输出到控制台
- 未配置日志滚动(rotation)
- 错误信息、堆栈异常过多
- 特点:不会自动切割,容易变得非常大
2. localhost.log / localhost_access_log
localhost.log:Web 应用部署、Servlet 异常
localhost_access_log.yyyy-mm-dd.txt:访问日志
- 一般按天生成,但长期不清理也会占用空间
3. catalina.yyyy-mm-dd.log
- Tomcat 自身运行日志
- 默认按天滚动,但旧文件不自动删除
4. manager / host-manager 日志
manager.log
- 使用 Manager 应用时产生,通常不大
5. 应用自身日志(常被忽略)
- 如
log4j、logback 生成的日志
- 位置可能在:
logs/
- 应用目录
WEB-INF/logs/
- 服务器其他目录
- 若未配置滚动或清理策略,会持续增大
6. 线程 dump / heap dump 文件
- 如
java_pid*.hprof
- 一般出现在 OOM 或手动 dump 时
- 单个文件可能几个 GB
常见导致“突然暴涨”的原因
- 死循环或频繁异常打印
- 日志级别设置过低(如 DEBUG)
- 访问量突增(access log)
- 内存溢出生成 hprof 文件
排查建议
du -sh $CATALINA_HOME/logs/*
find $CATALINA_HOME -type f -size +100M
解决方式
- 配置
logrotate(Linux)
- 使用
log4j / logback 滚动策略
- 定期清理或归档旧日志
- 控制应用日志级别
如果你愿意,可以告诉我:
- 用的是 Linux 还是 Windows
- Tomcat 版本
- 是否用了 log4j / logback
我可以给你具体的配置示例。