Tomcat日志轮转周期设置指南
一、Linux系统级方案 logrotate(推荐)
/opt/tomcat/logs/catalina.out {
daily
rotate 7
compress
missingok
notifempty
copytruncate
create 640 tomcat tomcat
}
关键参数说明:
sudo logrotate -d /etc/logrotate.d/tomcat(仅校验,不真正轮转)。sudo logrotate -f /etc/logrotate.d/tomcat。二、按大小轮转与清理脚本
/opt/tomcat/logs/catalina.out {
size 100M
rotate 7
compress
missingok
notifempty
copytruncate
}
#!/usr/bin/env bash
LOG_DIR="/opt/tomcat/logs"
KEEP_DAYS=7
find "$LOG_DIR" -type f -name "*.out" -mtime +$KEEP_DAYS -delete
通过 crontab 每天 02:00 执行:0 2 * * * /path/to/clean_tomcat_logs.sh
三、应用内日志框架按日期滚动(Tomcat 10 与 Log4j 2 示例)
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<RollingFile name="RollingFile"
fileName="logs/app.log"
filePattern="logs/app-%d{yyyy-MM-dd}.log.gz">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
<DefaultRolloverStrategy max="30"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
要点:
四、常见问题与注意事项