如何从日志中忽略Rails 3资产

时间:2011-09-09 18:02:41

标签: ruby-on-rails ruby-on-rails-3 sprockets asset-pipeline

  

可能重复:
  How to disable logging of asset pipeline (sprockets) messages in Rails 3.1?

是否可以在Rails3中破解记录器以忽略对资产的请求?

当它充满了

时,在日志中找到某些东西是疯狂的
Started GET "/assets/tiscali.png" for 127.0.0.1 at 2011-09-09 19:59:45 +0200
Served asset /tiscali.png - 304 Not Modified (0ms)

谢谢!

4 个答案:

答案 0 :(得分:11)

我认为这有助于https://github.com/evrone/quiet_assets

  

弃用

     

从当前版本的rails中使用的sprockets-rails版本3.1.0开始,不推荐使用此gem。

     

资产管道现在支持quiet选项,该选项禁止输出资产请求:

# config/environments/development.rb

config.assets.quiet = true
     

相关公关:https://github.com/rails/sprockets-rails/pull/355

     

信息

     

Quiet Assets关闭Rails资产管道日志。这意味着它会抑制开发日志中的消息,例如:

Started GET "/assets/application.js" for 127.0.0.1 at 2015-01-28 13:35:34 +0300
Served asset /application.js - 304 Not Modified (8ms)
     

支持Ruby on Rails> = 3.1 ...

     

用法

     

只需安装Quiet Assets即可自动禁止日志消息。但是,如果您希望暂时重新启用资产管道消息的日志记录,请将以下内容放在config/application.rb文件中:

config.quiet_assets = false
     

如果需要抑制其他路径的输出,可以通过指定:

来实现
config.quiet_assets_paths << '/silent/'

答案 1 :(得分:5)

反转选择怎么样?

tail -f log/development.log | grep -v asset

这基本上输出除了包含单词“asset”的行以外的所有内容。

答案 2 :(得分:5)

显然,截至2011年11月2日,issue仍然开放。

类似问题中提供了一种解决方案解决方案:How to disable logging of asset pipeline (sprockets) messages in Rails 3.1?

答案 3 :(得分:0)

Rails 3.2:

使用内容创建初始化程序:

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 

从这里开始:https://github.com/rails/rails/issues/2639