最近在用Ruby On Rails 寫一個培訓學校運營管理用的CRM客戶關係管理系統,生產環境伺服器是Nginx/Thin,開發環境用自帶的WEBrick,兩個伺服器統一有個問題就是所有的日誌都存在一個文件中,排錯時查找起來很麻煩,而且單個文件也會隨著伺服器的運行越來越大,查了查資料,實現的方法很多,以下是用logrotate實現的方法,可以實現日誌按天、周、月分割處理。
環境:
OS 版本及內核:Linux iZ28ha30kycZ 3.13.0-65-generic #106-Ubuntu SMP
Ruby 版本:2.3.0p0
Rails 版本:4.2.5
操作:
1、安裝logrotate(此作業系統版本自帶logrotate,所以這一步可以省掉)
sudo apt-get install logrotate
2、配置logrotate
vi /etc/logrotate.conf #編輯配置文件
將以下代碼添加進文件中,如果有多個需要分割的文件,添加多個就可以
#需要分割日誌目錄及文件/path/to/your/rails/current/log/*.log {daily # 按天整理 [weekly/monthly]dateext #表示檔案上rotate 的日期missingok #表示如果找不到log也沒關係rotate 65535 # 表示保留65535份compress #壓縮模式默認gzipdelaycompress #延後壓縮notifempty #如果log是空的就不rotatecopytruncate #先複製再清空[create]}
3、效果
設定好後可以等第二天,如果想當下看到效果可以執行
/usr/sbin/logrotate -f /etc/logrotate.conf