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

  • 59
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

ログの設定に関して

ログレベル

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に変えることで周期を変更することができます。

参考