Rails シンプル ログローテーション


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 を使う方法もあります。