Tomcat日志存储策略优化
一 核心目标与总体思路
二 按场景的可落地配置
系统级轮转 catalina.out(推荐)
/var/log/tomcat/catalina.out {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
logrotate -d /etc/logrotate.d/tomcat
logrotate -f /etc/logrotate.d/tomcat
内置 JULI 按大小滚动(logging.properties)
1catalina.org.apache.juli.FileHandler.level = INFO
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
1catalina.org.apache.juli.FileHandler.limit = 10485760 # 10MB
1catalina.org.apache.juli.FileHandler.count = 7
访问日志 AccessLogValve
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log"
suffix=".txt"
pattern="%h %l %u %t "%r" %s %b"
rotatable="true"
maxDays="7"/>
异步日志与性能
handlers = 1catalina.org.apache.juli.AsyncFileHandler
1catalina.org.apache.juli.AsyncFileHandler.level = INFO
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina_async.
1catalina.org.apache.juli.AsyncFileHandler.limit = 10485760
1catalina.org.apache.juli.AsyncFileHandler.count = 5
按日期切割 catalina.out(cronolog)
if [ -z "$CATALINA_OUT" ]; then
CATALINA_OUT="$CATALINA_BASE/logs/catalina.%Y-%m-%d.out"
fi
三 日志级别与输出治理
四 权限安全与运维规范