Tomcat采用Java Util Logging (JUL) 作為默認日志框架,日志級別從低到高分為:FINEST(最詳細,含變量值、方法調用棧)、FINER(較詳細,含線程信息)、FINE(調試信息,適合開發)、CONFIG(配置信息,如屬性加載)、INFO(常規運行信息,如啟動/關閉)、WARNING(潛在問題,如資源不足)、SEVERE(嚴重錯誤,如應用崩潰)。級別越高,記錄的信息越少,對性能影響越??;級別越低,記錄的信息越詳細,對性能影響越大。
生產環境需優先保證性能穩定和快速故障排查,推薦以下配置:
java.sql.ConnectionPool):設置為WARNING(記錄連接獲取失敗、超時等關鍵問題,避免泄露敏感SQL)。開發測試環境需詳細追蹤問題,推薦以下配置:
org.apache.catalina.servlets.DefaultServlet):設置為WARNING(避免記錄過多靜態文件訪問日志,干擾調試)。logging.properties文件logging.properties是Tomcat日志配置的核心文件,位于${CATALINA_BASE}/conf目錄(如/opt/tomcat/conf/logging.properties)。
.level屬性(根logger),例如:.level = INFO。模塊名.level設置特定模塊的級別,例如:org.apache.catalina.level = WARNING
org.apache.catalina.core.ContainerBase.level = WARNING
java.sql.ConnectionPool.level = WARNING
處理器名.level設置日志輸出目標(如控制臺、文件)的級別,例如:java.util.logging.ConsoleHandler.level = INFO
1catalina.org.apache.juli.FileHandler.level = WARNING
保存文件后,重啟Tomcat使配置生效。若無需修改配置文件,可通過JVM參數臨時設置全局日志級別,例如:
export JAVA_OPTS="-Djava.util.logging.ConsoleHandler.level=INFO"
./startup.sh
此方式僅對當前啟動有效,重啟后失效。
若需更強大的日志功能(如異步日志、遠程收集),可集成Log4j或SLF4J,步驟如下:
log4j-api、log4j-core、log4j-jul等jar包放入${CATALINA_HOME}/lib。log4j2.xml:在conf目錄下創建配置文件,定義日志級別、輸出格式、滾動策略等。logging.properties中設置.level = OFF,避免與Log4j沖突。FINEST或FINER,否則會導致磁盤空間快速耗盡(如每秒記錄數千條日志)。logrotate工具(Linux)或腳本定期壓縮、刪除舊日志,例如每天輪轉catalina.out,保留30天。WARNING時,需排查潛在問題)。