一、Debian Tomcat日志文件定位
Tomcat的日志文件默认存储在$CATALINA_BASE/logs目录下($CATALINA_BASE通常为Tomcat安装基目录,如/opt/tomcat/或/usr/local/tomcat/)。常见日志文件及作用如下:
conf/server.xml中的AccessLogValve配置(directory和prefix属性)确认访问日志路径。二、基础日志查看方法
tail -f命令跟踪catalina.out的实时更新(按Ctrl+C停止),适用于监控实时运行状态:tail -f /opt/tomcat/logs/catalina.out
less命令分页浏览(空格键向下翻页、b键向上翻页、q键退出),适合查看历史日志:less /opt/tomcat/logs/catalina.out
cat命令输出整个文件内容(适合小文件,大文件慎用):cat /opt/tomcat/logs/catalina.out
三、日志分析与过滤技巧
grep命令筛选特定关键字(如ERROR、SEVERE表示错误,WARN表示警告),快速定位问题:grep "ERROR" /opt/tomcat/logs/catalina.out # 查找错误日志
grep "SEVERE" /opt/tomcat/logs/catalina.out # 查找严重错误
grep "WARN" /opt/tomcat/logs/catalina.out # 查找警告信息
awk、sort、uniq等工具进行复杂文本处理:
awk '{print $1, $2}' /opt/tomcat/logs/catalina.out
awk '{print $1, $2}' /opt/tomcat/logs/catalina.out | sort | uniq -c | sort -nr
cat /opt/tomcat/logs/localhost_access_log.*.txt | awk -F'- - ' '{print $1}' | sort | uniq -c | sort -nr
at开头的行),可通过grep -A查看错误后的堆栈信息:grep -A 10 "ERROR" /opt/tomcat/logs/catalina.out # 显示错误及后续10行堆栈
四、高级日志分析与监控工具
logstash.conf文件收集Tomcat日志(如catalina.out),解析字段(如时间、IP、URL)并发送至Elasticsearch;grep统计错误数量)监控Elasticsearch中的日志条目,设置触发器(如错误数超过阈值)发送报警。catalina.out),查找内存溢出(OutOfMemoryError)、连接池耗尽等关键词,触发自动重启Tomcat或发送告警。五、日志配置优化建议
conf/logging.properties文件,设置合适的日志级别(SEVERE> WARNING> INFO> CONFIG> FINE> FINER> FINEST)。例如,将全局日志级别设为INFO,应用程序日志设为DEBUG(需谨慎,避免日志过多):.level = INFO
com.example.app.level = DEBUG
logrotate工具管理日志文件,避免单个日志文件过大。编辑/etc/logrotate.d/tomcat文件,添加如下配置(每天轮转、保留7天、压缩旧日志):/opt/tomcat/logs/catalina.out {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
localhost_access_log.*.txt)过大,可通过conf/server.xml中的AccessLogValve配置按日期分割(pattern="%d{yyyy-MM-dd}"):<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />