linux

Linux下Tomcat日志轮转策略

小樊
42
2025-12-15 07:49:51
栏目: 智能运维

Linux下Tomcat日志轮转策略

一 常用方案与适用场景

二 推荐方案 logrotate 配置示例

/opt/tomcat/logs/catalina.out {
    daily
    rotate 30
    size 100M
    copytruncate
    compress
    delaycompress
    missingok
    notifempty
    dateext
    dateformat -%Y-%m-%d
    create 0644 tomcat tomcat
}
/opt/tomcat/logs/catalina.*.log {
    daily
    rotate 30
    compress
    missingok
    notifempty
    dateext
    dateformat -%Y-%m-%d
    sharedscripts
    postrotate
        # 可选:通知或重启相关进程;多数情况下无需重启
    endscript
}
/opt/tomcat-*/logs/catalina.out {
    su root root
    daily
    rotate 15
    missingok
    dateext
    compress
    notifempty
    copytruncate
    size 20M
}

三 cronolog 按日期切割 catalina.out

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

四 按大小或数量轮转的 JULI 与 Log4j 配置

# 在 conf/logging.properties 中调整或新增
java.util.logging.FileHandler.limit = 10485760     # 10MB
java.util.logging.FileHandler.count = 10          # 保留10个
java.util.logging.FileHandler.pattern = /opt/tomcat/logs/catalina.%g.out
.handlers = java.util.logging.FileHandler
log4j.rootLogger=INFO, CATALINA
log4j.appender.CATALINA=org.apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.File=/opt/tomcat/logs/catalina.log
log4j.appender.CATALINA.DatePattern='.'yyyy-MM-dd
log4j.appender.CATALINA.layout=org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

五 运维要点与常见问题

0
看了该问题的人还看了