読者です 読者をやめる 読者になる 読者になる

【Rails】asset pipelineのログを出力しないようにする

Rails gem

Railsはデフォルトだと以下の用に asset pipeline のログが出力されてしまう。
邪魔なので出力させないようにする。

Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2014-01-18 15:19:00 +0900
Started GET "/assets/jquery.ui.core.css?body=1" for 127.0.0.1 at 2014-01-18 15:19:00 +0900

自分で作る

# config/initializers/quiet_assets.rb

if Rails.env.development?
  Rails.application.assets.logger = Logger.new('/dev/null')
  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'] =~ %r{^/assets/}
      call_without_quiet_assets(env)
    ensure
      Rails.logger.level = previous_level
    end
    alias_method_chain :call, :quiet_assets
  end
end

Gem を使う

# Gemfile

group :development do
  gem 'quiet_assets'
end
$ bundle install

どちらでもOK。
サーバー再起動後ログを確認するとasset pipeline のログが出力されなくなる。