温馨提示×

debian tomcat日志如何分割

小樊
51
2026-09-01 08:49:18
栏目: 智能运维

在 Debian 上,Tomcat 日志(主要是 catalina.out)默认不会自动分割,时间久了会非常大。常见做法有下面几种,按“推荐程度”给你说明。


一、推荐方式:使用 logrotate(系统自带,最省心)

Debian 自带 logrotate,非常适合分割 catalina.out。

1. 创建 logrotate 配置

sudo vi /etc/logrotate.d/tomcat

示例(假设 Tomcat 安装在 /opt/tomcat,用户是 tomcat):

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

2. 参数说明

  • daily:每天分割
  • rotate 7:保留 7 份
  • compress:压缩旧日志
  • copytruncate:不重启 Tomcat 直接截断日志(重要)

3. 测试

sudo logrotate -d /etc/logrotate.d/tomcat
sudo logrotate -f /etc/logrotate.d/tomcat

✅ 这是生产环境最常用方案


二、使用 logging.properties(仅限 Tomcat 自身日志)

Tomcat 的 conf/logging.properties 可以控制:

  • catalina.log
  • localhost.log
  • manager.log

示例:

1catalina.org.apache.juli.FileHandler.maxDays = 7
1catalina.org.apache.juli.FileHandler.rotatable = true

⚠️ 但 对 catalina.out 无效


三、使用 cronolog(老方案,不太推荐)

安装

sudo apt install cronolog

修改 bin/catalina.sh

找到:

>> "$CATALINA_OUT" 2>&1 &

改为:

2>&1 | /usr/bin/cronolog /opt/tomcat/logs/catalina.%Y-%m-%d.out &

⚠️ 需要改启动脚本,升级 Tomcat 容易丢配置


四、使用 log4j / logback(适合开发项目)

如果是 你自己的 Java 应用:

  • 用 logback + RollingFileAppender
  • 不要用 System.out.println

✅ 最规范,但和 Tomcat 容器日志无关


五、总结建议

场景 推荐方案
生产服务器 ✅ logrotate
不想改 Tomcat ✅ logrotate
老系统 cronolog
Java 应用日志 logback

如果你愿意,可以告诉我:

  • Tomcat 安装路径
  • 是否用 systemd
  • Debian 版本

我可以帮你写一份可直接用的 logrotate 配置。

0 踩