Ubuntu Tomcat日志管理指南
Tomcat的日志文件默认存储在以下路径(取决于安装方式):
/var/log/tomcat/(如通过apt安装的Tomcat)/opt/tomcat/logs/(如下载二进制包解压的Tomcat)server.xml中的AccessLogValve配置,可通过directory属性查看具体路径(如<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" .../>中的logs目录)。日志轮转可防止日志文件无限增长,常用工具为logrotate(系统自带)。
sudo apt update
sudo apt install logrotate
在/etc/logrotate.d/目录下创建tomcat文件:
sudo nano /etc/logrotate.d/tomcat
添加以下内容(根据实际路径调整):
/var/log/tomcat/*.log {
daily # 每天轮转
rotate 7 # 保留7个旧日志
compress # 压缩旧日志(如.gz格式)
missingok # 日志不存在时不报错
notifempty # 日志为空时不轮转
copytruncate # 复制原日志后清空,避免Tomcat写入锁定
}
说明:若需轮转catalina.out(控制台输出),可单独配置:
/usr/local/tomcat/logs/catalina.out {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
sudo logrotate -vf /etc/logrotate.d/tomcat
cron.daily每日执行logrotate,无需额外配置(可通过cat /etc/cron.daily/logrotate查看任务)。使用tail -f命令跟踪日志文件的新增内容:
tail -f /var/log/tomcat/catalina.out # 控制台日志
tail -f /var/log/tomcat/localhost_access_log.2025-11-05.txt # 访问日志
grep "ERROR" /var/log/tomcat/catalina.out
tail -f):tail -f /var/log/tomcat/catalina.out | grep "ERROR"
grep "ERROR" /var/log/tomcat/catalina.out | wc -l
awk '{print $4, $7}' /var/log/tomcat/localhost_access_log.2025-11-05.txt | sort | uniq -c
Tomcat的日志级别可通过conf/logging.properties文件配置,级别从高到低为:SEVERE > WARNING > INFO > CONFIG > FINE > FINER > FINEST。
WARNINGsudo nano /opt/tomcat/conf/logging.properties
修改以下行:
org.apache.catalina.level = WARNING
org.apache.coyote.level = WARNING
org.apache.jasper.level = WARNING
修改后需重启Tomcat生效:
sudo systemctl restart tomcat
适用于大规模日志分析,可实现日志收集、存储、可视化。步骤:
catalina.out);开源日志管理工具,支持集中收集、搜索、告警。步骤:
server.xml,设置Connector的URIEncoding为UTF-8:<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8" />
catalina.sh(或catalina.bat)中添加JVM参数:export JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"
cronolog工具按日期分割日志(需修改catalina.sh中的CATALINA_OUT变量):sudo apt install cronolog
sudo sed -i 's|CATALINA_OUT=".*"|CATALINA_OUT="$CATALINA_LOG_DIR/catalina.%Y-%m-%d.out"|g' /opt/tomcat/bin/catalina.sh
sudo systemctl restart tomcat