Tomcat的日志文件默認存儲在$CATALINA_HOME/logs
目錄下($CATALINA_HOME
為Tomcat安裝目錄),常見日志文件及作用如下:
find / -name "*.log" -type f
命令全局查找日志文件,或檢查$CATALINA_HOME/conf/server.xml
(日志配置路徑)和$CATALINA_HOME/conf/logging.properties
(日志級別、格式配置)確認日志位置。tail -f
命令監控日志文件的實時更新(如tail -f /opt/tomcat/logs/catalina.out
),按Ctrl+C
停止;less
(支持上下翻頁、搜索)或more
(逐頁查看)命令(如less /opt/tomcat/logs/catalina.out
);grep
命令篩選關鍵字(如錯誤信息tail -f catalina.out | grep "ERROR"
、特定IPgrep "192.168.1.100" access_log.txt
);awk
提取日志中的關鍵字段(如從訪問日志中提取IP和URL:awk '{print $1, $7}' access_log.txt
);sed
命令提取指定時間范圍的日志(如sed -n '/2025-09-22 14:00:00/,/2025-09-22 15:00:00/p' catalina.out
)。grep -i "ERROR\|WARN" catalina.out
過濾錯誤和警告信息,結合堆棧跟蹤(Stack Trace)定位問題根源(如java.lang.NullPointerException
、數據庫連接超報錯);awk
統計訪問量(awk '{print $1}' access_log.txt | sort | uniq -c | sort -nr
)、熱門URL(awk '{print $7}' access_log.txt | sort | uniq -c | sort -nr
)、響應狀態碼分布(awk '{print $9}' access_log.txt | sort | uniq -c
);awk '{print $10}' access_log.txt | grep -v "-" | awk '{sum+=$1; count++} END {print "Average Time: " sum/count "ms"}'
),或通過GC日志(需開啟-Xloggc
參數)分析垃圾回收頻率和時間。input
(讀取Tomcat日志文件)、filter
(解析日志格式,如grok解析訪問日志)和output
(發送至Elasticsearch);index=tomcat sourcetype=access* status=500
)、報表(如Top 10錯誤請求)和實時監控功能。logrotate
工具自動壓縮、刪除舊日志,避免日志文件過大占用磁盤空間。示例配置(/etc/logrotate.d/tomcat
):/opt/tomcat/logs/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 640 tomcat tomcat
postrotate
/bin/kill -HUP `cat /opt/tomcat/logs/catalina.pid 2>/dev/null` 2>/dev/null || true
endscript
}
該配置表示每日輪轉日志,保留7天壓縮日志,輪轉后重新加載Tomcat(避免日志丟失);tomcat
)對日志目錄有讀寫權限(chown -R tomcat:tomcat /opt/tomcat/logs/
,chmod 755 /opt/tomcat/logs/
);