溫馨提示×

CentOS Tomcat日志如何配置與管理

小樊
42
2025-10-17 13:59:37
欄目: 智能運維

一、Tomcat日志定位

Tomcat的日志文件默認存儲在$CATALINA_HOME/logs目錄下($CATALINA_HOME為Tomcat安裝目錄環境變量),主要包含以下類型:

  • catalina.out:Tomcat核心運行日志,記錄啟動/停止信息、運行時錯誤及常規輸出(若未配置分割,會持續增長);
  • localhost.date.log:本地主機活動日志(如Servlet生命周期、JSP編譯);
  • manager/date.log:Tomcat Manager應用日志(應用部署、卸載等操作);
  • host-manager/date.log:Tomcat Host Manager應用日志(虛擬主機管理操作)。

二、基礎日志查看方法

  1. 實時查看日志:使用tail -f命令跟蹤日志文件的新增內容(如catalina.out),按Ctrl+C停止:
    cd $CATALINA_HOME/logs
    tail -f catalina.out
    
  2. 查看特定時間段日志:通過sed命令截取指定時間范圍的日志(如2025-10-01至2025-10-02):
    sed -n "/2025-10-01/,/2025-10-02/p" catalina.out > /tmp/tomcat_specific.log
    
  3. Systemd服務日志:若Tomcat以systemd服務運行(如tomcat.service),可使用journalctl查看實時日志:
    journalctl -u tomcat.service -f
    

三、日志輪轉配置(防止日志過大)

日志輪轉用于自動分割、壓縮舊日志,推薦使用系統自帶的logrotate工具:

  1. 創建/編輯配置文件:在/etc/logrotate.d/下創建tomcat文件,添加以下規則(以catalina.out為例):
    /var/log/tomcat/logs/catalina.out {
        daily                # 每天輪轉
        rotate 7             # 保留最近7份
        compress             # 壓縮舊日志(如catalina.out.1.gz)
        missingok            # 若日志不存在不報錯
        notifempty           # 若日志為空不輪轉
        copytruncate         # 復制原日志后清空(避免重啟Tomcat)
    }
    
  2. 手動觸發輪轉:測試配置是否正確,強制立即輪轉:
    logrotate -f /etc/logrotate.d/tomcat
    
  3. 調整訪問日志輪轉:若啟用了Tomcat訪問日志(server.xml中配置AccessLogValve),可設置rotatable="true"maxDays屬性(如保留30天):
    <Valve className="org.apache.catalina.valves.AccessLogValve"
           directory="logs"
           prefix="localhost_access_log."
           suffix=".txt"
           rotatable="true"
           maxDays="30"
           pattern="%h %l %u %t "%r" %s %b" />
    

四、日志級別調整(控制日志詳細程度)

Tomcat使用java.util.logging框架,通過conf/logging.properties文件調整日志級別(級別從高到低:SEVERE>WARNING>INFO>CONFIG>FINE>FINER>FINEST):

  1. 全局日志級別:修改handlers對應的處理器級別(如將catalina日志設為WARNING,減少不必要的信息):
    1catalina.org.apache.juli.FileHandler.level = WARNING
    2localhost.org.apache.juli.FileHandler.level = WARNING
    3manager.org.apache.juli.FileHandler.level = WARNING
    4host-manager.org.apache.juli.FileHandler.level = WARNING
    
  2. 特定包日志級別:針對特定組件(如org.apache.catalina.startup)調整級別(如設為ERROR,僅記錄錯誤信息):
    org.apache.catalina.startup.level = ERROR
    
  3. 生效配置:修改后需重啟Tomcat使設置生效:
    systemctl restart tomcat
    

五、高級配置:使用Log4j替代默認日志框架

若需要更靈活的日志管理(如滾動策略、異步日志),可將Tomcat日志框架切換為Log4j:

  1. 準備依賴包:下載log4j-1.2.17.jar、tomcat-juli.jar、tomcat-juli-adapters.jar,放入$CATALINA_HOME/lib目錄;
  2. 替換原有JAR:將bin/tomcat-juli.jar替換為lib目錄下的同名JAR;
  3. 配置Log4j:在conf目錄下創建log4j.properties文件,設置日志輸出(如滾動文件、控制臺):
    log4j.rootLogger = INFO, file
    log4j.appender.file = org.apache.log4j.RollingFileAppender
    log4j.appender.file.File = /var/log/tomcat/tomcat.log
    log4j.appender.file.MaxFileSize = 10MB
    log4j.appender.file.MaxBackupIndex = 10
    log4j.appender.file.layout = org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    
  4. 禁用默認日志:刪除或重命名conf/logging.properties文件。

六、日志管理最佳實踐

  1. 定期清理過期日志:通過cron定時任務(如每天凌晨2點)刪除超過30天的日志:
    0 2 * * * find /var/log/tomcat/logs -name "*.log.*" -mtime +30 -exec rm -f {} \;
    
  2. 異步日志提升性能:使用異步日志處理器(如Log4j的AsyncAppender或Tomcat的AsyncFileHandler),減少I/O對主線程的影響;
  3. 敏感信息過濾:通過log4jjava.util.loggingFilter機制,過濾日志中的密碼、密鑰等敏感數據;
  4. 集中日志管理:使用ELK(Elasticsearch+Logstash+Kibana)或Fluentd等工具,將Tomcat日志集中收集、存儲和分析,便于故障排查。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女