温馨提示×

Ubuntu Tomcat日志怎么分割

小樊
48
2026-07-10 10:20:08
栏目: 智能运维

在 Ubuntu 上,Tomcat 日志分割通常有两种主流做法:

  1. 使用 cronolog(最简单、常用)
  2. 使用 logrotate(系统级、推荐)

下面分别说明,并给出可直接使用的配置示例。


一、使用 cronolog 按日期切割 catalina.out

1. 安装 cronolog

sudo apt update
sudo apt install cronolog

2. 修改 Tomcat 启动脚本

编辑 bin/catalina.sh(或 systemd 启动方式见后文):

找到类似下面这一行:

>> "$CATALINA_OUT" 2>&1 &

修改为:

| /usr/bin/cronolog "$CATALINA_BASE/logs/catalina.%Y-%m-%d.out" >> /dev/null 2>&1 &

并确保 CATALINA_OUT 类似:

CATALINA_OUT="$CATALINA_BASE/logs/catalina.out"

✅ 重启 Tomcat 后,日志会变成:

catalina.2026-01-21.out
catalina.2026-01-22.out

二、使用 logrotate(推荐,系统级)

这是 Ubuntu 官方推荐方式,不修改 Tomcat 本身。

1. 创建 logrotate 配置

sudo vim /etc/logrotate.d/tomcat

内容示例:

/var/log/tomcat*/catalina.out {
    daily
    rotate 30
    compress
    delaycompress
    missingok
    notifempty
    copytruncate
}

2. 参数说明

参数 说明
daily 每天切割
rotate 30 保留 30 天
compress 压缩旧日志
copytruncate 不重启 Tomcat
missingok 日志不存在不报错

3. 测试

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

✅ 第二天即可看到:

catalina.out
catalina.out.1
catalina.out.2.gz

三、Tomcat 9+(systemd 方式)

如果你是用 systemd 启动 Tomcat:

sudo vim /lib/systemd/system/tomcat.service

[Service] 中:

StandardOutput=append:/var/log/tomcat/catalina.out
StandardError=append:/var/log/tomcat/catalina.out

然后配合 logrotate 使用即可。


四、其他 Tomcat 日志(localhost / manager / host-manager)

这些日志由 logging.properties 控制,可配置滚动策略:

1catalina.org.apache.juli.AsyncFileHandler.rotatable = true
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.

Tomcat 默认会按日期生成:

catalina.2026-01-21.log

✅ 推荐方案总结

场景 推荐
只想简单切 catalina.out cronolog
生产环境、稳定 logrotate ✅
Ubuntu + systemd logrotate

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

  • Tomcat 版本
  • 是否是 systemd 启动
  • 日志路径

我可以给你一份 完全贴合你环境的配置

0