96
89

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-02-11

ログの設定に関して

ログレベル

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

参考

96
89
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
96
89

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?