Rails でシンプルにログローテーションする方法です。
環境
- Rails 4.1.8
- Ruby 2.2.2
- Ubuntu 15.04 (64bit)
設定
Rails の config/application.rb
に次の記述を追加します。
ここでは 100 MB (104,857,600 バイト) で 最大 10 ファイル まで保存するようにしています。 要するに 1 GB までログを保存する。 また、 10 ファイル を超えると、古いものから削除されていきます。
Rails の標準では daily, weekly などのログの設定方法もありますが、その場合は古いログファイルは削除されません。
テスト方法
例えば development 環境 でテストする場合、 次のコマンドで 100 MB を超えるログファイルをあらかじめ作成しておく。
bs
はブロックサイズ、count
は書き込み回数を表しています。
そこで、 rails s
のコマンドでサーバを起動して、 どこかのページにアクセスします。 すると、 development.log
, development.log.0
ができているはずです。
Rails のロギングは、 SyslogLogger
や Linux の logrotate を使う方法もあります。