2013年6月7日金曜日

【Ruby on Railsでデバッグ時に不要と思われるコンソールのログを消す方法】

♢環境
Rails 3.2.12
ruby 1.9.3

♢問題
Webrickが出す大量のログがデバッグ時に邪魔
Ex.1
GET "/assets/...系のログ
 
Ex.2
これ → WARN  Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true

♢解法
Ex.1は
config/initializersの中に「quiet_assets.rb」を作成
--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

Ex.2は
gem thinをGemfileに書き、install
Rails3.2からはrails serverコマンドでthinが起動する

♢というわけで・・・
これでコンソールが見やすくなった!!!



0 件のコメント:

コメントを投稿