assetsのログを出力させない

Environment

Mac OSX 10.7.5 (Lion)
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin11.4.2]
Rails 3.2.13

Issues

development環境で作業を行う際、下の画像のようにtail -f log/development.log
ログを垂れ流しているのだけど、画面生成の際走るSQLなんかを確認したい時に
assetsのログが邪魔すぎる・・・

f:id:nyangry:20131121180311j:plain

Solution

ログを見ると、

  • assetに対するGETログ
  • assetの処理ログ

の2種類が表示されていることがわかる。
これらをまとめて非表示にする方法はないようで、個別に対応する必要がある。

  • assetに対するGETログ

app\config\initializers\quiet_assets.rbを作成し、以下のコードをコピペする。

Rails::Rack::Logger.class_eval do 
  def call_with_quiet_assets(env)
    previous_level = Rails.logger.level
    Rails.logger.level = Logger::ERROR if env['PATH_INFO'].index("/assets/") == 0 
    call_without_quiet_assets(env).tap do
      Rails.logger.level = previous_level
    end 
  end 
  alias_method_chain :call, :quiet_assets 
end 
  • assetの処理ログ

enviroments/development.rb に以下のコードを追記する。

config.assets.logger = false

Another solution

  • quiet_assets gemを使用する このgemでやっている内容は上記対策と同様です.

References

RailsによるアジャイルWebアプリケーション開発 第4版

RailsによるアジャイルWebアプリケーション開発 第4版