コレグレーデギネード

WindowsとかUbuntuとかRubyとかRailsとか

サーバーログのStarted GET "/assets/***.css?body=1"とServed asset /***.css - 304 Not Modifiedを何とかしたい。

前記事「「WEBricの環境でサーバーログに「WARN Could not determine content-length of response body.」多発」の途中で投げ出した、assetsのログを何とかしようと思う。
こんなのがズラリ。

Started GET "/assets/rails.png" for 127.0.0.1 at 2012-05-10 15:13:19 +0900
Served asset /rails.png - 304 Not Modified (34ms)

Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2012-05-10 15:13:37 +0900
Served asset /application.css - 304 Not Modified (6ms)

Started GET "/assets/scaffolds.css?body=1" for 127.0.0.1 at 2012-05-10 15:13:37 +0900
Served asset /scaffolds.css - 304 Not Modified (2ms)

Started GET "/assets/users.css?body=1" for 127.0.0.1 at 2012-05-10 15:13:37 +0900
Served asset /users.css - 304 Not Modified (16ms)

Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2012-05-10 15:13:37 +0900
Served asset /jquery.js - 304 Not Modified (57ms)

今回もmori_devさんのサイトを参考にさせて頂きました。m(_ _)m
http://d.hatena.ne.jp/kitokitoki/20120407/p1

プロジェクト内のconfig/initializersの中に新たに「quiet_assets.rb」を作成する。
いかにも黙りそうですな。

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'].index("/assets/") == 0
    call_without_quiet_assets(env).tap do
      Rails.logger.level = previous_level
    end
  end
  alias_method_chain :call, :quiet_assets
end

サーバー再起動で確認OK。