3

私のRails開発ログには、次のような種類の行が非常に多く含まれています。

Started GET "/assets/services.css?body=1" for 127.0.0.1 at 2012-11-26 02:27:49 -0800
Served asset /services.css - 304 Not Modified (0ms)
[2012-11-26 02:27:49] WARN  Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true

最後の行を避けるために、レールにコンテンツの長さを決定させたり、response.chunkedをどこかに設定したりする方法を理解する必要があると思います(正確にはわかりません)。しかし、それでも、次のようなデータベースリクエストを見つけるために、これらを検索するのに時間を浪費する必要があります。

Started GET "/points" for 127.0.0.1 at 2012-11-26 02:27:54 -0800
Processing by PointsController#index as HTML
  User Load (0.3ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
  PointsLog Load (0.1ms)  SELECT "points_logs".* FROM "points_logs" WHERE "points_logs"."user_id" = 1
  Rendered points/index.html.erb within layouts/application (5.4ms)
Completed 200 OK in 43ms (Views: 40.0ms | ActiveRecord: 0.8ms)

私が見ることができるこれらのタイプのリクエストの個別のログはありますか?「提供された資産」で始まるログエントリを一時的または永続的に抑制する方法はありますか?または、サービングアセットをログに記録しませんか?

4

1 に答える 1

6

更新: 以下を書いたので、誰かが同じことをする宝石を作りました。おそらくより良いアプローチです。 https://rubygems.org/gems/quiet_assets

これを入れてconfig/initializers/quiet_assets.rb、開発サーバーを再起動します。

#
#
# Silence the log file if it's loading up an asset.  That is, get rid of
# the following types of entries in the development log:
# 
# Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2012-03-05 11:52:18 -0800
# Served asset /application.css - 200 OK (5ms)
#
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
于 2012-11-26T19:28:11.863 に答える