CentOS下Tomcat日志管理方法
1. 日志文件定位
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应用日志(虚拟主机管理操作记录)。
2. 实时查看日志
使用tail命令实时跟踪日志文件的新增内容,是排查实时问题的常用方式:
cd $CATALINA_HOME/logs
tail -f catalina.out # 实时查看catalina.out日志
常用选项:
-f:循环读取文件,实时显示最新内容;-n 100:显示最后100行日志;Ctrl+C:停止实时查看。
3. 日志轮转配置
日志轮转可防止日志文件过大占用磁盘空间,常用方法有两种:
(1)通过logrotate工具(系统级轮转)
编辑/etc/logrotate.d/tomcat文件(若不存在则创建),添加以下配置(以catalina.out为例):
/usr/local/tomcat/logs/catalina.out {
daily # 每天轮转
rotate 7 # 保留最近7天的日志
compress # 压缩旧日志(如catalina.out.1.gz)
missingok # 若日志文件不存在也不报错
notifempty # 若日志为空则不轮转
create 0640 tomcat tomcat # 创建新日志文件的权限和所有者
postrotate # 轮转后执行的命令(通知Tomcat重新打开日志文件)
/bin/kill -HUP `cat /var/run/tomcat.pid` 2>/dev/null || true
endscript
}
手动触发轮转测试:
logrotate -f /etc/logrotate.d/tomcat
(2)通过logging.properties文件(Tomcat级轮转)
编辑$CATALINA_HOME/conf/logging.properties文件,修改java.util.logging.FileHandler配置:
java.util.logging.FileHandler.level = INFO
java.util.logging.FileHandler.pattern = ${catalina.base}/logs/catalina.%g.log # 日志命名模式(%g为序号)
java.util.logging.FileHandler.limit = 10485760 # 单个日志文件最大10MB(10*1024*1024字节)
java.util.logging.FileHandler.count = 5 # 保留5个备份文件
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
重启Tomcat使配置生效:
$CATALINA_HOME/bin/shutdown.sh && $CATALINA_HOME/bin/startup.sh
4. 日志过滤与分析
- 过滤关键字:使用
grep命令查找特定错误或关键词(如“ERROR”):tail -f catalina.out | grep "ERROR" # 实时过滤ERROR日志 - 提取时间段日志:使用
sed命令截取指定时间范围的日志(如2025-10-01至2025-10-02):sed -n '/2025-10-01 00:00/,/2025-10-02 00:00/p' catalina.out > /tmp/tomcat_error.log - 系统日志整合:若Tomcat以systemd服务运行,可使用
journalctl查看统一日志:journalctl -u tomcat.service -f # 实时查看Tomcat系统日志
5. 日志清理
定期清理旧日志可避免磁盘空间耗尽,常用方法:
- 手动清理:直接删除指定天数前的日志文件(如15天前):
find $CATALINA_HOME/logs/ -mtime +15 -name "*.log" -exec rm -rf {} \; - 自动化清理:编写Shell脚本(如
auto-del-logs.sh),并添加到crontab定时任务:添加定时任务(每天凌晨1点执行):#!/bin/bash find $CATALINA_HOME/logs/ -mtime +15 -name "*.*" -exec rm -rf {} \;crontab -e # 添加以下行 0 1 * * * /path/to/auto-del-logs.sh
6. 减少日志输出(优化性能)
若不需要详细日志,可通过修改配置降低日志级别:
- 修改logging.properties文件:调整根日志级别为
WARNING(仅记录警告及以上级别日志):handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler .handlers = 1catalina.org.apache.juli.AsyncFileHandler 1catalina.org.apache.juli.AsyncFileHandler.level = WARNING - 修改catalina.sh文件:在文件开头添加
JAVA_OPTS参数,关闭调试日志:export JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.config.file=$CATALINA_HOME/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
以上方法覆盖了CentOS下Tomcat日志的查看、轮转、分析、清理全流程,可根据实际需求选择组合使用,确保日志管理的高效性和规范性。
以上就是关于“CentOS下Tomcat日志管理方法”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm