一、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" />