【问题标题】:How to ignore Rails 3 assets from log [duplicate]如何从日志中忽略 Rails 3 资产 [重复]
【发布时间】:2011-11-14 00:05:21
【问题描述】:

可能重复:
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)

谢谢!

【问题讨论】:

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


    【解决方案1】:

    反转选择怎么样?

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

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

    【讨论】:

    • 总比没有好,但它会用空白空间替换大量资产请求,所以滚动日志仍然很痛苦:)
    • 如果滚动是问题,你可以去掉所有的空行。尾-f 日志/development.log | grep -vE "(^$|资产)"
    • 附带说明,我很确定拥有更好 *nix 技能的人可以提出更好的表达方式,但重点是您可以使用 tail -f 匹配任何您想要的内容。
    • 是的。 “学习一点 grep”比搞砸资产管道要好。
    【解决方案2】:

    issue 显然在 2011 年 11 月 2 日仍然开放。

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

    【讨论】:

      【解决方案3】:

      我认为这可以帮助https://github.com/evrone/quiet_assets

      弃用

      截至sprockets-rails 版本3.1.0,在当前版本的rails 中使用,此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/'
      

      【讨论】:

        【解决方案4】:

        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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-04-22
          • 1970-01-01
          • 2012-02-26
          • 1970-01-01
          • 1970-01-01
          • 2013-01-10
          • 1970-01-01
          • 2015-11-05
          相关资源
          最近更新 更多