温馨提示×

怎样分割Ubuntu Tomcat日志

小樊
46
2026-10-03 14:53:50
栏目: 智能运维

在 Ubuntu 上,Tomcat 日志通常会变得很大(如 catalina.out),需要按大小或按时间分割,常见做法有以下几种:


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

Ubuntu 自带 logrotate,非常适合分割 Tomcat 日志。

1. 创建 logrotate 配置

sudo vi /etc/logrotate.d/tomcat

示例配置(以 catalina.out 为例):

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

说明:

  • daily:每天分割
  • rotate 7:保留 7 份
  • compress:压缩旧日志
  • copytruncate:复制后清空原文件(Tomcat 不用重启)

2. 测试配置

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

强制执行一次:

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

二、使用 cronolog(按日期分割)

适合 catalina.out 按天生成文件。

1. 安装

sudo apt install cronolog

2. 修改 Tomcat 启动脚本

编辑:

sudo vi /opt/tomcat/bin/catalina.sh

找到:

>> "$CATALINA_OUT" 2>&1 &

改为:

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

重启 Tomcat 后日志会按天生成。


三、修改 logging.properties(按大小)

Tomcat 自带 java.util.logging,可限制大小。

编辑:

sudo vi /opt/tomcat/conf/logging.properties

示例:

1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
1catalina.org.apache.juli.FileHandler.maxDays = 7
1catalina.org.apache.juli.FileHandler.rotatable = true

(适合 catalina.log,不适合 catalina.out)


四、使用 log4j / logback(Web 应用日志)

如果是应用自身日志,推荐:

  • log4j2 → RollingFileAppender
  • logback → SizeAndTimeBasedRollingPolicy

推荐方案总结

场景 推荐方式
catalina.out logrotate
按天日志 cronolog
应用日志 log4j / logback
不想重启 copytruncate

如果你能告诉我:

  • Tomcat 安装路径
  • 是否使用 systemd
  • 想按“大小”还是“日期”

我可以给你更精确的配置。

0 踩