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