在Debian系統中,Tomcat的日志級別設置主要通過**logging.properties
**配置文件完成,需結合日志用途、性能影響及維護需求,合理分配不同組件的日志級別。以下是具體步驟及建議:
Tomcat的日志配置文件位于$CATALINA_BASE/conf/logging.properties
(如/opt/tomcat/conf/logging.properties
),所有日志級別及輸出方式的調整均在此文件中完成。
Tomcat采用Java標準日志級別,從高到低依次為:
原則:級別越高,日志量越少;級別越低,日志量越大(需權衡性能與排查需求)。
若需統一控制所有日志的輸出級別,可修改logging.properties
中的.level
屬性(根日志記錄器):
.level = INFO # 生產環境推薦:平衡信息量與性能
# .level = WARNING # 僅記錄重要警告及錯誤(低日志量)
# .level = FINE # 開發/調試環境:記錄詳細信息(高日志量)
修改后需重啟Tomcat使配置生效。
Tomcat的日志分為catalina(主容器)、localhost(本地主機應用)、manager(管理界面)、host-manager(虛擬主機管理)等類別,建議針對不同組件設置差異化級別:
INFO
或WARNING
:1catalina.org.apache.juli.FileHandler.level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
FINE
,生產環境設為INFO
:2localhost.org.apache.juli.FileHandler.level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
WARNING
(避免記錄過多無意義的管理日志):3manager.org.apache.juli.FileHandler.level = WARNING
4host-manager.org.apache.juli.FileHandler.level = WARNING
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = WARNING
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = WARNING
org.apache.coyote.level = FINE # 記錄HTTP請求/響應詳情(如URL、狀態碼)
org.apache.tomcat.util.scan.StandardJarScanFilter.level = FINE # 記錄JAR包掃描過程(排查類加載問題)
需為這些包指定對應的處理器(如2localhost.org.apache.juli.FileHandler
),避免日志輸出到無關文件。日志可通過控制臺(開發調試)或文件(生產環境)輸出,建議生產環境優先使用文件輸出:
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
1catalina.org.apache.juli.FileHandler.level = INFO
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
1catalina.org.apache.juli.FileHandler.formatter = java.util.logging.SimpleFormatter
上述配置會將catalina
日志輸出到${catalina.base}/logs/catalina.log
文件中。使用logrotate
工具定期清理舊日志,防止catalina.out
等文件過大占用磁盤空間。創建/etc/logrotate.d/tomcat
文件,添加以下配置:
/opt/tomcat/logs/catalina.out {
daily # 每天輪轉一次
rotate 14 # 保留14天備份
copytruncate # 復制原文件后清空(不影響Tomcat運行)
compress # 壓縮舊日志(節省空間)
missingok # 若日志文件不存在也不報錯
notifempty # 若日志為空則不輪轉
}
配置完成后,logrotate
會自動按計劃執行日志輪轉。
修改logging.properties
后,重啟Tomcat使配置生效:
$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh
重啟后,檢查${catalina.base}/logs
目錄下的日志文件(如catalina.out
、localhost.log
),確認日志級別是否符合預期(如INFO
級別日志應包含常規運行信息,FINE
級別日志應包含詳細調試信息)。
通過以上步驟,可根據Debian環境下Tomcat的實際使用場景(生產/開發),合理設置日志級別,在保證排查需求的同時,避免日志過多影響系統性能。