LoginSignup
4

More than 5 years have passed since last update.

Rails の production 以外の環境で時刻などをログに出力する

Last updated at Posted at 2014-08-25

かなり単純なことですが、検索してもシンプルな方法が引っかからなかったので書いておきます。

問題

Rails は、デフォルトのままだと production では以下のようなログを出力します。

log/production.log
D, [2014-08-25T13:19:43.756025 #1104] DEBUG -- : foo
I, [2014-08-25T13:19:43.756434 #1104]  INFO -- : bar

しかし、production 以外の環境だと、以下のようにメッセージしか出力してくれません。

log/development.log
foo
bar

普通に開発している分には、リクエストを受けた時刻が以下のように記録されるので困らないかもしれません。

Started GET "/foo" for x.x.x.x at 2014-08-25 12:33:37 +0900

しかし、リクエストを返すまでの細かい時刻が知りたい、rake タスクのデバッグで時刻が見たい、など prodcution 以外でも詳細な情報を見たい場合があると思います。

解決

そのためには、以下のようにします。

config/application.rb
config.log_formatter = Logger::Formatter.new

これだけです。config/application.rb の時点では config.logger は設定されていないので、config.logger.formatter = ... とはできないのに注意です。

おしまい。

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
4