Edited at

Railsでログの設定+ローテートを行う

More than 3 years have passed since last update.


ログの設定に関して


ログレベル

Railsのログのレベルは以下の5つがあります。

レベル
内容

:debug
すべて書き出し
0

:info
一般的な情報
1

:warn
警告
2

:error
エラー
3

:fatal
致命的なエラー
4


レベルの設定

基本的にはconfig/environments/production.rbといったファイルで設定は行います。


config/environments/production.rb

# 以下を追記

config.log_level = :error


特定メソッド内のみレベルを変更

ある特定の部分だけ表示ログの出力レベルを変更したい場合が有るかと思います。その際は以下のように設定すれば変更することができます。


users_controller.rb

class UsersController < ApplicationController

def index
Rails.logger.level = Logger::DEBUG
end
end


ログローテートの設定

ログローテートを設定する方法は以下の2つがあります。

1. ログのファイルサイズでのローテート(規定を超えた場合)

2. 日数を指定してローテート

それぞれについて、設定方法を以下で説明していきます。


サイズでのローテート

10Mを超えた際にproduction.0, production.1というファイルを作成し、5ファイルを超えた場合は古いファイルを削除するコードが以下です。


config/environments/production.rb

config.logger = Logger.new("log/production.log", 5, 10 * 1024 * 1024)



日数でのローテート

以下のように設定します。


config/environments/production.rb

config.logger = Logger.new("log/production.log", 'daily')


dailyの部分をweekly, monthlyに変えることで周期を変更することができます。


参考