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配置(如增加线程池大小)。