一、Tomcat日志分類(CentOS環境)
Tomcat的日志主要分為兩類:訪問日志(記錄客戶端請求詳情)和運行日志(記錄服務運行狀態、錯誤信息等)。
訪問日志用于記錄客戶端的HTTP請求信息,如IP地址、請求方法、URI、響應狀態碼等。
$CATALINA_HOME/conf/server.xml(CATALINA_HOME為Tomcat安裝目錄)。<Valve>標簽啟用,關鍵屬性說明如下:
directory:日志文件存儲路徑(如logs目錄);prefix:日志文件前綴(如localhost_access_log);suffix:日志文件后綴(如.txt);pattern:日志格式模板(決定日志內容的字段);resolveHosts:是否將遠程IP解析為主機名(true為解析,false為直接顯示IP,默認false)。%h:遠程IP地址;%l:遠程邏輯用戶名(始終為-);%u:認證后的遠程用戶(未認證則為-);%t:請求時間(默認格式為dd/MMM/yyyy:HH:mm:ss Z);%r:請求的第一行(包含方法、URI和協議,如GET /index.html HTTP/1.1);%s:響應狀態碼(如200、404);%b:發送的字節數(不包括HTTP頭,0則顯示-);%{Referer}i:請求來源頁面的URL(Referer頭);%{User-Agent}i:客戶端瀏覽器信息(User-Agent頭)。server.xml中啟用訪問日志并設置格式):<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log."
suffix=".txt"
pattern="%h %l %u %t "%r" %s %b %{Referer}i %{User-Agent}i"
resolveHosts="false"/>
上述配置會生成類似以下的日志條目:192.168.1.100 - - [19/Oct/2025:10:30:00 +0800] "GET /index.html HTTP/1.1" 200 1024 "http://example.com" "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"。運行日志記錄Tomcat服務的啟動、停止、運行時錯誤及應用部署等信息,主要包括以下幾類:
localhost.2025-10-19.log):本地主機活動日志,記錄默認虛擬主機的錯誤信息(如Servlet異常、JSP編譯錯誤);manager.2025-10-19.log):Tomcat Manager應用的日志,記錄應用部署、卸載等操作;host-manager.2025-10-19.log):虛擬主機管理應用的日志,記錄虛擬主機的配置變更。$CATALINA_HOME/conf/logging.properties(控制日志級別、輸出格式及文件路徑)。SEVERE(最高,嚴重錯誤)、WARNING(警告)、INFO(信息,默認級別)、CONFIG(配置信息)、FINE(詳細調試信息)、FINER(更詳細)、FINEST(最低,最詳細)。logging.properties中的日志級別):# 設置catalina日志級別為FINE(更詳細的調試信息)
1catalina.org.apache.juli.FileHandler.level = FINE
# 設置localhost日志級別為INFO(默認)
2localhost.org.apache.juli.FileHandler.level = INFO
# 設置日志輸出格式(簡單格式)
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
修改后需重啟Tomcat使配置生效:sudo systemctl restart tomcat。tail -f命令實時查看catalina.out文件的內容(如tail -f $CATALINA_HOME/logs/catalina.out),按Ctrl+C停止。/etc/logrotate.d/tomcat配置文件實現自動輪轉(如每天生成一個新日志文件,保留7天)。示例配置:/usr/local/tomcat/logs/catalina.out {
daily
rotate 7
compress
missingok
notifempty
create 640 tomcat tomcat
postrotate
/bin/kill -HUP `cat /var/run/tomcat.pid`
endscript
}
catalina.out過大,可通過mv命令重命名后重啟Tomcat生成新文件(如mv $CATALINA_HOME/logs/catalina.out $CATALINA_HOME/logs/catalina.bak,然后systemctl restart tomcat)。