Tomcat的catalina.out文件過大問題(logrotate方式)

問題

sudo du -sh /opt/tomcat/logs/*
...
4.5G    /opt/tomcat/logs/catalina.out
...

Tomcat在Cent OS上面的日誌文件catalina.out達到了4G多。php

解決

logrotate

建立配置文件linux

vi /etc/logrotate.d/tomcat

編寫配置文件:tomcat

/opt/tomcat/logs/catalina.out {   
    copytruncate   
    daily   
    rotate 7   
    compress   
    missingok   
    size 5M  
}

配置說明:bash

  • /opt/tomcat/logs/catalina.out:須要歸檔的日誌路徑
  • copytruncate:複製截斷模式
  • daily:天天觸發一次
  • rotate:最多7個日誌文件
  • compress: 使用壓縮
  • missingok:若是缺乏日誌文件,請繼續執行下一個日誌文件而不發出錯誤消息
  • size: 僅當日志文件大小超過字節大小時纔會輪換日誌文件

這樣logrotate就天天自動觸發一第二天志切割歸檔。ide

測試logrotate輪寫日誌

logrotate -v /etc/logrotate.conf
...
rotating pattern: /opt/tomcat/logs/catalina.out  5242880 bytes (7 rotations)
empty log files are rotated, old logs are removed
considering log /opt/tomcat/logs/catalina.out
  log needs rotating
rotating log /opt/tomcat/logs/catalina.out, log->rotateCount is 7
dateext suffix '-20180928'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed
copying /opt/tomcat/logs/catalina.out to /opt/tomcat/logs/catalina.out-20180928
set default create context
truncating /opt/tomcat/logs/catalina.out
compressing log with: /bin/gzip
...

而後,在tomcat的logs文件夾下面查看一下,是否對catalina.out文件進行了輪寫備份。測試

[admin@Servicenumber logs]$ ls -lh
總用量 23M
...
-rw-r-----. 1 tomcat tomcat 249K 9月  28 09:30 catalina.out
-rw-r-----. 1 tomcat tomcat 566K 9月  28 09:27 catalina.out-20180928.gz
...

看到了gz文件,說明logrotate沒有問題了。操作系統

logrotate的日誌文件

/var/lib/logrotate.status

注意

使用logrotate時候,必定要確保tomcat日誌輸出位置是位於/var/log/tomcat/catalina.out纔可以生效。不是操做系統的/var/log/日誌輸出位置,logrotate是沒法啓用的。.net

參考

logrotate(8) - Linux man page日誌

How to Rotate Tomcat catalina.outcode

處理Tomcat日誌catalina.out日誌文件過大的問題(第二種方法適合各類日誌的切割)

第十八章、認識與分析登錄檔

相關文章
相關標籤/搜索