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