Ubuntu下Tomcat日志查看与管理指南
Tomcat的日志文件默认存储在以下路径之一,具体取决于安装方式(如apt安装或手动解压):
/var/log/tomcat(apt安装的默认路径,如/var/log/tomcat9/)/opt/tomcat/logs(手动解压安装的默认路径,如/opt/tomcat/apache-tomcat-9.0.xx/logs/)若路径不确定,可通过Tomcat配置文件确认:打开server.xml(位于conf目录),查找<Valve className="org.apache.catalina.valves.AccessLogValve">标签,其directory属性指定了访问日志的目录,prefix属性指定了日志文件前缀(如localhost_access_log)。
使用less命令可分页浏览日志内容(支持上下箭头导航、/关键词搜索、q退出):
less /var/log/tomcat/catalina.out
或指定具体日志文件(如访问日志):
less /var/log/tomcat/localhost_access_log.2025-10-27.txt
使用tail -f命令实时跟踪日志文件的新增内容(按Ctrl+C退出):
tail -f /var/log/tomcat/catalina.out
若需查看指定行数的最新日志(如最后100行):
tail -n 100 /var/log/tomcat/catalina.out
使用grep命令筛选日志中的关键信息(如ERROR、Exception):
grep 'ERROR' /var/log/tomcat/catalina.out # 查找所有ERROR级别的日志
grep -i 'exception' /var/log/tomcat/catalina.out # 忽略大小写查找异常信息
结合tail -f实现实时过滤(快速定位问题):
tail -f /var/log/tomcat/catalina.out | grep 'ERROR'
使用wc -l命令统计日志文件的总行数(快速了解日志规模):
wc -l /var/log/tomcat/catalina.out
使用sed命令截取指定时间范围的日志(如2025-10-27 12:00至12:05的日志):
sed -n '/2025-10-27 12:00:00/,/2025-10-27 12:05:00/p' /var/log/tomcat/catalina.out
编写Shell脚本批量提取错误信息并统计(保存为analyze_tomcat_logs.sh):
#!/bin/bash
TOMCAT_LOG_PATH="/var/log/tomcat/catalina.out"
if [ ! -f "$TOMCAT_LOG_PATH" ]; then
echo "Tomcat log file not found at $TOMCAT_LOG_PATH"
exit 1
fi
echo "Analyzing Tomcat logs for errors..."
grep -i "ERROR" "$TOMCAT_LOG_PATH" | awk '{print $1, $2, $3, $4, $5}' | sort | uniq -c | sort -nr
echo "Analysis complete."
赋予执行权限并运行:
chmod +x analyze_tomcat_logs.sh
./analyze_tomcat_logs.sh
若需调整日志详细程度(如增加DEBUG级日志用于深度排查),可修改logging.properties文件(位于conf目录):
# 设置全局日志级别为DEBUG(默认为INFO)
.level=DEBUG
# 调整特定包的日志级别(如org.apache.catalina)
org.apache.catalina.level=DEBUG
修改后需重启Tomcat使配置生效:
sudo systemctl restart tomcat
sudo提升权限(如sudo less /var/log/tomcat/catalina.out)。catalina.out.2025-10-27.gz),可使用zcat查看压缩日志:zcat /var/log/tomcat/catalina.out.2025-10-27.gz