CentOS下Tomcat日志管理指南
Tomcat的日志文件默认存储在$CATALINA_HOME/logs目录下($CATALINA_HOME为Tomcat安装目录环境变量)。主要日志文件包括:
使用tail命令可实时跟踪日志文件的新增内容,便于快速定位问题:
cd $CATALINA_HOME/logs tail -f catalina.out 按Ctrl+C停止实时查看。若需过滤特定关键字(如“ERROR”),可结合grep命令:
tail -f catalina.out | grep ERROR 日志轮转用于定期分割、压缩旧日志,保留必要历史记录。常用方法为logrotate工具(CentOS系统自带):
编辑/etc/logrotate.d/tomcat文件(若不存在则创建),添加以下配置:
/usr/local/tomcat/logs/catalina.out { daily # 每天轮转一次(可根据需求改为weekly/monthly) rotate 7 # 保留最近7个轮转文件(避免占用过多磁盘空间) compress # 轮转后压缩(节省空间,生成.gz文件) missingok # 若日志文件不存在,不报错 notifempty # 若日志为空,不进行轮转 copytruncate # 复制原日志文件后清空,避免Tomcat写入锁问题 } logrotate -d /etc/logrotate.d/tomcat 若输出“no errors”则表示配置正确。logrotate -f /etc/logrotate.d/tomcat logrotate默认集成到系统cron任务中(/etc/cron.daily/logrotate),每天自动运行一次。
通过修改logging.properties文件(位于$CATALINA_HOME/conf目录)可调整日志级别,减少不必要的日志输出:
# 设置根日志级别为WARN(仅记录警告、错误信息) handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler 1catalina.org.apache.juli.AsyncFileHandler.level = WARN java.util.logging.ConsoleHandler.level = WARN 可选级别:FINEST(最详细)、FINER、FINE、INFO(默认)、WARN、SEVERE(仅错误)。
若未使用logrotate或需额外清理,可编写Shell脚本定期删除指定天数前的日志文件:
vim /usr/local/tomcat/scripts/clean_tomcat_logs.sh 添加以下内容(删除/usr/local/tomcat/logs/目录下超过15天的所有日志文件):
#!/bin/bash find /usr/local/tomcat/logs/ -type f -name "*.log" -mtime +15 -exec rm -f {} \; find /usr/local/tomcat/logs/ -type f -name "*.out" -mtime +15 -exec rm -f {} \; chmod +x /usr/local/tomcat/scripts/clean_tomcat_logs.sh 通过crontab -e添加以下内容(每天凌晨2点执行清理):
0 2 * * * /usr/local/tomcat/scripts/clean_tomcat_logs.sh 若需更灵活的日志管理(如按级别拆分日志、发送到远程服务器),可使用Log4j替代Tomcat默认的JULI日志框架:
下载log4j-1.2.17.jar、tomcat-juli-adapters.jar(从Tomcat官网或Maven仓库获取),放入$CATALINA_HOME/lib目录。
将$CATALINA_HOME/bin/tomcat-juli.jar备份后,替换为tomcat-juli-adapters.jar。
在$CATALINA_HOME/conf目录下创建log4j.properties文件,示例配置:
log4j.rootLogger = INFO, file log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File = /usr/local/tomcat/logs/tomcat.log log4j.appender.file.MaxFileSize = 10MB log4j.appender.file.MaxBackupIndex = 5 log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 此配置将日志输出到tomcat.log,单个文件最大10MB,保留5个备份。
若Tomcat以systemd服务运行(如tomcat.service),可通过journalctl统一查看系统及应用日志:
journalctl -u tomcat.service # 查看Tomcat服务日志 journalctl -u tomcat.service -f # 实时跟踪Tomcat日志 journalctl -u tomcat.service --since "2025-10-24 00:00:00" --until "2025-10-24 23:59:59" # 查看指定时间段日志