温馨提示×

linux下如何切割tomcat日志

小樊
33
2026-10-02 16:18:01
栏目: 智能运维

在 Linux 下,Tomcat 日志切割常见有几种方式,从“最简单”到“最规范”依次介绍,你可以按需求选择。


一、最推荐:使用 logrotate(系统自带,最规范)

Tomcat 默认日志在:

$CATALINA_HOME/logs/

常见日志:

  • catalina.out
  • localhost.log
  • host-manager.log
  • manager.log

1️⃣ 创建 logrotate 配置

新建文件:

/etc/logrotate.d/tomcat

示例配置(重点:catalina.out):

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

如果是多日志:

/opt/tomcat/logs/*.log
/opt/tomcat/logs/catalina.out {
    daily
    rotate 15
    missingok
    notifempty
    compress
    copytruncate
}

2️⃣ 参数说明

  • daily:每天切割
  • rotate 7:保留 7 份
  • compress:压缩旧日志
  • copytruncate:不重启 Tomcat 就能切割(非常重要)

3️⃣ 手动测试

logrotate -d /etc/logrotate.d/tomcat   # 模拟
logrotate -f /etc/logrotate.d/tomcat   # 强制执行

✅ 这是生产环境最推荐方式


二、Tomcat 自带(不推荐用于 catalina.out)

Tomcat 的 logging.properties 可以切割 localhost.log 等,但:

  • ❌ 不能切割 catalina.out
  • ✅ 只适合小项目

三、使用 cronolog(老方案,逐渐淘汰)

1️⃣ 安装

yum install cronolog
# 或
apt install cronolog

2️⃣ 修改 catalina.sh

找到:

org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 &

改为:

org.apache.catalina.startup.Bootstrap "$@" start \
2>&1 | /usr/bin/cronolog "$CATALINA_BASE/logs/catalina.%Y-%m-%d.out" &

⚠️ 需要重启 Tomcat


四、使用 log4j2(适合新项目)

如果你用 Spring Boot / 新 Tomcat:

  • 用 log4j2
  • 配置 RollingFileAppender

✅ 最灵活
❌ 配置复杂


五、总结推荐

场景 推荐方案
生产 Tomcat ✅ logrotate
不想改配置 ✅ logrotate
老系统 cronolog
新项目 log4j2

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

  • Tomcat 安装路径
  • 是否 Docker
  • 日志大小 & 切割频率需求

我可以帮你写完整可直接用的配置。

0 踩