Tomcat的日志文件默认存储在$CATALINA_HOME/logs
目录($CATALINA_HOME
为Tomcat安装目录)。常见日志文件及作用:
server.xml
中AccessLogValve
配置)。find / -name "*.log" -type f
命令快速查找所有日志文件,或通过$CATALINA_HOME/conf/server.xml
中的Valve
标签确认访问日志路径。tail -f
命令跟踪catalina.out
的最新内容,便于实时监控运行状态:tail -f /var/log/tomcat/catalina.out
grep
命令筛选错误、警告等信息(如ERROR
、SEVERE
、Timeout
):grep -i "error" /var/log/tomcat/catalina.out # -i忽略大小写
grep "Connection refused" /var/log/tomcat/catalina.out
less
命令分页浏览日志,支持上下翻页、搜索(按/
键输入关键字):less /var/log/tomcat/catalina.out
awk
、sort
、uniq
组合统计访问频率(如每小时请求数、最常访问的URL):awk '{print $1, $2}' /var/log/tomcat/localhost_access_log.2025-10-01.txt | sort | uniq -c | sort -nr # 统计每小时请求数
awk -F'"' '{print $2}' /var/log/tomcat/localhost_access_log.2025-10-01.txt | sort | uniq -c | sort -nr # 统计最常访问的URL
sed
命令提取指定时间范围的日志(如2025-10-01 12:00至12:05):sed -n '/2025-10-01 12:00:00/,/2025-10-01 12:05:00/p' /var/log/tomcat/catalina.out
apt
或官网下载);logstash.conf
配置文件,定义输入(Tomcat日志路径)、过滤(如解析时间戳、提取URL)、输出(Elasticsearch索引);forwarder
收集Tomcat日志,使用SPL(Splunk Processing Language)查询日志(如index=tomcat sourcetype=access* status=500
)。GELF
或Syslog
协议接收Tomcat日志,配置告警规则(如错误日志超过阈值时发送邮件)。当日志文件过大时,可使用cronolog
工具按日期分割日志,便于管理和归档:
cronolog
:sudo apt-get install cronolog
catalina.sh
脚本($CATALINA_HOME/bin
目录),将日志输出重定向到cronolog
:# 修改前(原catalina.out)
org.apache.catalina.startup.Bootstrap "$@" start >> "$CATALINA_OUT" 2>&1 &
# 修改后(按日期分割)
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 | /usr/sbin/cronolog "$CATALINA_BASE/logs/catalina.%Y-%m-%d.out" >> /dev/null &
重启Tomcat后,日志将按catalina.YYYY-MM-DD.out
格式分割,避免单个文件过大。catalina.out
中查找ERROR
、SEVERE
或Exception
关键字,结合堆栈追踪分析问题根源(如ClassNotFoundException
表示类缺失,OutOfMemoryError
表示内存不足);4xx
(客户端错误,如404
Not Found)或5xx
(服务器错误,如500
Internal Server Error)状态码的数量,定位接口或应用问题;%D
字段,单位为毫秒),统计平均响应时间较长的接口,优化代码或调整Tomcat配置(如增加线程池大小)。