1. tos-miyake
Changes in body
Source | HTML | Preview
@@ -1,85 +1,85 @@
# ログの設定に関して
## ログレベル
Railsのログのレベルは以下の5つがあります。
<table>
<tr>
<th>レベル</th>
<th>内容</th>
<th>値</th>
</tr>
<tr>
<td>:debug</td>
<td>すべて書き出し</td>
<td>0</td>
</tr>
<tr>
<td>:info</td>
<td>一般的な情報</td>
<td>1</td>
</tr>
<tr>
<td>:warn</td>
<td>警告</td>
<td>2</td>
</tr>
<tr>
<td>:error</td>
<td>エラー</td>
<td>3</td>
</tr>
<tr>
<td>:fatal</td>
<td>致命的なエラー</td>
<td>4</td>
</tr>
</table>
## レベルの設定
基本的にはconfig/environments/production.rbといったファイルで設定は行います。
```rb:config/environments/production.rb
# 以下を追記
config.log_level = :error
```
## 特定メソッド内のみレベルを変更
ある特定の部分だけ表示ログの出力レベルを変更したい場合が有るかと思います。その際は以下のように設定すれば変更することができます。
```rb: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.logger = Logger.new("log/production.log", 5, 10.megabytes)
```
## 日数でのローテート
以下のように設定します。
```config/environments/production.rb
config.logger = Logger.new("log/production.log", 'daily')
```
dailyの部分をweekly, monthlyに変えることで周期を変更することができます。
# 参考
* [ログに書き出すログレベルを変更する](http://rails.hatenadiary.jp/entry/2013/02/06/181430)
* [Railsでログローテーションする方法](http://rails.hatenadiary.jp/entry/2013/02/06/201302)