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 "%r" %s %b" />
細心的你也許一經發現,catalina.out文件並無日期後綴,這樣就意味着該文件並不會自動切割,它會越寫越大。解決該問題的方法有兩個:bash
0 0 */5 * * echo "" > /usr/local/tomcat/logs/catalina.out
# 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 #日月周來肯定年