温馨提示×

debian tomcat日志怎么轮转

小樊
34
2026-09-16 11:15:01
栏目: 智能运维

在 Debian 上,Tomcat 日志轮转(log rotation)常见有 三种方式,最推荐的是利用系统自带的 logrotate。下面按使用场景说明。


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

Debian 默认安装了 logrotate,Tomcat 安装后通常已经在:

/etc/logrotate.d/tomcat9
# 或 tomcat8 / tomcat10,取决于版本

1. 查看现有配置

cat /etc/logrotate.d/tomcat9

典型内容示例:

/var/log/tomcat9/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 640 tomcat tomcat
    sharedscripts
    postrotate
        systemctl reload tomcat9 > /dev/null 2>&1 || true
    endscript
}

2. 手动测试轮转

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

二、Tomcat 自带 Logging(JULI)

Tomcat 默认使用 java.util.logging(JULI),配置文件在:

/var/lib/tomcat9/conf/logging.properties

常见日志文件

  • catalina.out
  • catalina.log
  • localhost.log

⚠️ 注意

  • catalina.out 不会自动轮转
  • 需要靠 logrotate 或外部工具

三、catalina.out 特别处理(很重要)

catalina.out 是标准输出,最容易变大。

方法 1:logrotate 轮转 catalina.out

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

copytruncate 很关键(不重启 Tomcat)

方法 2:用 log4j / logback 替代 JULI(高级)

适合大项目:

  • 使用 log4j2
  • 配置 RollingFileAppender

四、常见参数说明

参数 作用
daily 每天轮转
rotate N 保留 N 份
compress 压缩旧日志
copytruncate 不重启进程截断日志
missingok 日志不存在不报错

五、推荐组合(生产环境)

最佳方案

  • Debian + logrotate
  • catalina.out 使用 copytruncate
  • 应用日志用 log4j/logback

如果你告诉我:

  • Tomcat 版本(8/9/10)
  • 是否用 Docker
  • 日志路径

我可以给你一份可直接用的 logrotate 配置

0