一、日誌切割介紹
tomcat日誌一般產生的是比較大的,catalina.out文件一般佔用比較大,如果不做切割的話,很容易佔滿存儲磁盤,一般需要做切割,切割的方法有多種,現介紹一種系統自動的日誌切割的工具:logrotate軟件,一般是系統自動的,非常好用。
二、使用logrotate分割tomcat日誌
logrotate是個強大的系統軟件,它對日誌有着一套完整的操作模式,譬如:轉存。郵件和壓縮等,並且默認logrotate加到cron(/etc/cron.daily/logrotate)作爲每日任務執行。自動有了logrotate,可以不用使用腳本切割了。
配置tomcat的日誌分割
針對生產中的tomcat實例日誌的切割,配置如下:
cat /etc/logrotate.d/tomcat
/webserver/tomcat/college-admin/logs/catalina.out
/webserver/tomcat/college-server/logs/catalina.out
/webserver/tomcat/innospace-file-server/logs/catalina.out
/webserver/tomcat/innospace-admin/logs/catalina.out
/webserver/tomcat/innospace-server-news/logs/catalina.out
/webserver/tomcat/innospace-server-activity/logs/catalina.out
/webserver/tomcat/innospace-server-space/logs/catalina.out
/webserver/tomcat/innospace-server-park/logs/catalina.out
/webserver/tomcat/innospace-server/logs/catalina.out {
daily
rotate 30
missingok
dateext
nocompress
notifempty
copytruncate
}
參數詳解:
daily 指定轉儲週期爲每天
rotate 5 指定日誌文件刪除之前轉儲的次數,0指沒有備份,5只保留 5個備份
missingok 如果日誌不存在則忽略該警告信息
dateext 文件後綴是日期格式,也就是切割後文件是xxx.log-20150828.gz
nocompress 通過gzip壓縮轉儲以後的日誌
notifempty 如果是空文件的話,不轉儲
copytruncate 用於還在打開中的日誌文件,把當前日誌備份並截斷
立即截斷日誌:# logrotate --force /etc/logrotate.d/tomcat
指定切割時間:
[root@master ~]# crontab -l
00 00 * * * /usr/sbin/logrotate --force /etc/logrotate.d/tomcat
三、logrotate參數說明
參數名稱 含義
compress 通過gzip 壓縮轉儲以後的日誌
nocompress 不壓縮轉儲
copytruncate 打開中的日誌轉儲
nocopytruncate 備份日誌文件,但是不截斷
nocreate 不建立新日誌
delaycompress 延遲壓縮,和compress一起使用時,轉儲的日誌文件到下一次轉儲時才壓縮 nodelaycompress 轉儲並壓縮
errors address 轉儲時錯誤信息發送指定地址
ifempty 文件爲空也轉儲
notifempty 如果文件爲空,不轉儲
mail address 發送轉儲日誌到指定郵箱
nomail 轉儲不發郵件
olddir directory 轉儲後的日誌文件放入指定的目錄,必須和當前日誌文件在同一個文件系統
noolddir 轉儲後的日誌文件和當前日誌文件放在同一個目錄下 prerotate/endscript 在轉儲以前需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行 postrotate/endscript 在轉儲以後需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行
daily 按天存儲
weekly 按周存儲
monthly 按月存儲
rotate count 日誌轉存保留的前多少份,多餘的會被刪除
tabootext [+] list 讓logrotate 不轉儲指定擴展名的文件,缺省的擴展名是:.rpm-orig, .rpmsave, v, 和 ~ size
size 當日志文件到達指定的大小時才轉儲,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB
extension 指定轉存日誌後綴名,例如 .log
dateformat 設置日誌文件名日期格式默認爲 %Y%m%d