Help us understand the problem. What is going on with this article?

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

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away