4.64Tomcat的日誌

Tomcat的日誌

FTP服務

測試登陸FTP

 Tomcat的日誌

  • Tomcat的日誌在/usr/local/tomcat/log目錄下
[root@localhost logs]# ls
catalina.2019-02-25.log  catalina.out                 host-manager.2019-02-26.log  localhost.2019-02-26.log             localhost_access_log.2019-02-26.txt  manager.2019-02-26.log
catalina.2019-02-26.log  host-manager.2019-02-25.log  localhost.2019-02-25.log     localhost_access_log.2019-02-25.txt  manager.2019-02-25.log
  • 在這個目錄下有這麼多日誌文件,當咱們遇到問題應該cha 查看哪一個呢?
  • 遇到問題查看catalina.out,這個日誌是核心日誌,不管正確或者錯誤的訪問信息,無論是Tomcat服務自己仍是Tomcat上跑的應用(如zrlog)產生的日誌都會記錄到這個日誌裏
  • manager日誌是管理臺相關的日誌,不用關注
  • access_log是訪問日誌,記錄的是客戶訪問站點的狀況,這個日誌能夠yi不用讓它記錄,而是在nginx代理商記錄訪問信息,因此也不用關注
  •  這個帶日期的catalina.xxxx-xx-xx.log是catalina的引擎相關的日誌,能夠認爲是Tomcat服務自己的日誌,這個也不用關注,由於它和catalina.out是重複的,也就是說這個日誌中記錄的內容在catalina.out這個日誌中就有
  • locashhost xxxx-xx-xx.log,它主要是應用初始化(listener,filter,servlet)未處理的異常最後被Tomcat捕獲而輸出的日誌,也不用太關注

 日誌配置文件conf/logging.propertiesnginx

  • 這裏面主要定義了非訪問日誌的一些屬性,好比日誌路徑、哪些日誌記錄到哪一個文件中(名字)、日誌級別、存儲週期等信息,這個配置文件咱們

通常都不會去更改。而訪問日誌的格式、路徑是在server.xml中定義的,以下是在server.xml配置文件中爲訪問日誌的配置片斷:apache

<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文件並無日期後綴,意味着該文件不會自動切割,它會越寫越大、直到將硬盤的容量寫滿、解決這個問題的辦法有兩個。

一:新增一個計劃任務,每隔一段時間就清空該文件

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			##執行的命令
  • 定時清空catalina.out
[root@localhost etc]# crontab -l
0 0 */5 * * echo "" > /usr/local/tomcat/logs/catalina.out

補充:

  • 有兩個文件能夠控制crontab可否被其餘用戶使用,/etc/cron.deny和/etc/cron.allow系統默認保留的是/etc/cron.deny,最好選擇一個使用,避免邏輯混亂。若是不想用戶使用crontab功能,能夠將用戶添加到/etc/corn.deny文件
  • crontab命令
  • crontab -u只有root用戶可以使用該參數,也就是幫其餘用戶添加刪除crontab任務計劃
  • crontab -e編輯crontab的工做內容
  • crontab -l查閱crontab的工做內容
  • crontab -r刪除全部的crontab的內容,若是要刪除一項,可使用crontab -e去刪除一項
  • 使用crontab來新建了任務計劃以後,該項計劃就會被記錄到/var/spool/cron裏面,且是以帳號來判別的。好比,root用戶建了任務計劃就會被寫到/var/spool/cron/root中;另外cron執行的每一項工做都會被寫到/var/log/cron這個日誌文件中,全部若是不知道系統是否被惡意運行過cron,能夠查看該日誌文件

二:用系統自帶的logrotate工具切割

  • 在logrotate.d下建立Tomcat的切割配置文件
vi /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時,就輪轉
    }
相關文章
相關標籤/搜索