4.64-Tomcat的日誌

Tomcat的日誌前端

日誌的目錄

Tomcat日誌在/usr/local/tomcat/logs/目錄下,大概有這麼幾類文件:catalina.out日誌的總管、catalina.xxxx-xx-xx.log、host-manager.xxxx-xx-xx.log 管理日誌、manager.xxxx-xx-xx.log 管理日誌、localhost.xxxx-xx-xx.log、xxx_access_log.xxxx-xx-xx.txt 訪問日誌。哇~怎麼這麼多?遇到問題咱們該查哪一個?apache

關鍵的日誌

記住一點便可,遇到問題查catalina.out,這個日誌是核心日誌,不管正確的信息仍是錯誤的信息,無論是tomcat服務自己的仍是tomcat跑的應用(如,zrlog)都會記錄到這個日誌裏。 兩個manager日誌是管理臺相關的日誌,不用關注。而access_log是訪問日誌,記錄客戶端訪問網站的狀況,這個日誌其實能夠不讓它記,而是在前端Nginx代理上記錄,因此也不用關注。這個帶日期的catalina.xxxx-xx-xx.log是catalina引擎相關的日誌,能夠認爲是tomcat服務自己的日誌,其實這個也不用關注,由於它和catalina.out是重複的,也就是說這個裏面記錄的信息在catalina.out裏就有。還有個localhost.xxxx-xx-xx.log,它主要是應用初始化(listener, filter, servlet)未處理的異常最後被tomcat捕獲而輸出的日誌,其實也不用怎麼關注。vim

日誌配置文件

日誌配置文件conf/logging.properties,裏面主要定義了非訪問日誌的一些屬性,好比日誌路徑、哪些日誌記錄到哪一個文件(名字)、日誌級別、存儲週期等信息,這個配置文件咱們通常都不會更改,保持默認便可。而訪問日誌的格式、路徑是在server.xml中定義的,以下爲訪問日誌的配置片斷:tomcat

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

日誌切割

細心的你也許一經發現,catalina.out文件並無日期後綴,這樣就意味着該文件並不會自動切割,它會越寫越大。解決該問題的方法有兩個:bash

  • 1)每隔一段時間清空該文件,好比增長一個計劃任務
0 0 */5 * * echo "" > /usr/local/tomcat/logs/catalina.out
  • 2)用系統自帶的logrotate工具切割
# vim /etc/logrotate.d/tomcat  //寫入以下內容
/usr/local/tomcat/logs/catalina.out  {
    copytruncate    # 建立新的catalina.out副本後,截斷源catalina.out文件
    daily    # 天天進行catalina.out文件的輪轉
    rotate 7     # 至多保留7個副本
    missingok    # 若是要輪轉的文件丟失了,繼續輪轉而不報錯
    compress     # 使用壓縮的方式(節省硬盤空間)
    size 16M     # 當catalina.out文件大於16MB時,就輪轉 和daily有衝突,size 16M做爲首要判斷途徑
}
[root@feature1 tomcat]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

補充:

任務計劃:

crontab -e 
格式:分 時 日 月 周 命令
#天天3點執行1.sh
0 3 * * * /bin/bash /usr/local/sbin/1.sh

#每隔多少
1,2,3

#每隔五分鐘
*/5
#天天8點9點10點執行
0 8-10 * * *
#周的理解
1-7  0-6

#日月周來肯定年
相關文章
相關標籤/搜索