CentOS Tomcat日志如何管理
CentOS下Tomcat日志管理指南
一、日志定位
Tomcat的日志文件默认存储在$CATALINA_HOME/logs目录下($CATALINA_HOME为Tomcat安装目录环境变量)。主要日志文件包括:
- catalina.out:Tomcat核心日志,记录启动/停止信息、运行时错误及常规日志;
- localhost.date.log:本地主机活动日志(如Servlet生命周期、JSP编译);
- manager/date.log:Tomcat Manager应用日志(部署、卸载等操作记录);
- host-manager/date.log:Tomcat Host Manager应用日志(虚拟主机管理操作记录)。
二、实时查看日志
使用tail命令可实时跟踪日志文件的新增内容,便于快速定位问题:
cd $CATALINA_HOME/logs
tail -f catalina.out
按Ctrl+C停止实时查看。若需过滤特定关键字(如“ERROR”),可结合grep命令:
tail -f catalina.out | grep ERROR
三、日志轮转(防止日志膨胀)
日志轮转用于定期分割、压缩旧日志,保留必要历史记录。常用方法为logrotate工具(CentOS系统自带):
1. 配置logrotate
编辑/etc/logrotate.d/tomcat文件(若不存在则创建),添加以下配置:
/usr/local/tomcat/logs/catalina.out {
daily # 每天轮转一次(可根据需求改为weekly/monthly)
rotate 7 # 保留最近7个轮转文件(避免占用过多磁盘空间)
compress # 轮转后压缩(节省空间,生成.gz文件)
missingok # 若日志文件不存在,不报错
notifempty # 若日志为空,不进行轮转
copytruncate # 复制原日志文件后清空,避免Tomcat写入锁问题
}
2. 测试与执行
- 测试配置有效性(不修改原日志):
若输出“no errors”则表示配置正确。logrotate -d /etc/logrotate.d/tomcat - 手动触发轮转(立即执行):
logrotate -f /etc/logrotate.d/tomcat
3. 自动执行
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脚本定期删除指定天数前的日志文件:
1. 创建清理脚本
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 {
}
\;
2. 添加执行权限
chmod +x /usr/local/tomcat/scripts/clean_tomcat_logs.sh
3. 设置定时任务
通过crontab -e添加以下内容(每天凌晨2点执行清理):
0 2 * * * /usr/local/tomcat/scripts/clean_tomcat_logs.sh
六、进阶:使用Log4j替代默认日志
若需更灵活的日志管理(如按级别拆分日志、发送到远程服务器),可使用Log4j替代Tomcat默认的JULI日志框架:
1. 准备依赖包
下载log4j-1.2.17.jar、tomcat-juli-adapters.jar(从Tomcat官网或Maven仓库获取),放入$CATALINA_HOME/lib目录。
2. 替换原有JAR包
将$CATALINA_HOME/bin/tomcat-juli.jar备份后,替换为tomcat-juli-adapters.jar。
3. 配置Log4j
在$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个备份。
七、使用journalctl查看系统日志
若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" # 查看指定时间段日志
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Tomcat日志如何管理
本文地址: https://pptw.com/jishu/734496.html
