如何在Rails开发模式下关闭资产日志记录?

5

我尝试过:

config.assets.logger = nil


config.assets.logger = false

有什么线索可以获取那些讨厌的日志吗?

1
请参见https://dev59.com/VG015IYBdhLWcg3w7wMW,了解如何在Rails 3.1中禁用资产管道(Asset Pipeline)Sprockets消息的记录。 - jasonlfunk
谢谢jasonifunk,当我搜索时实际上没有看到这个。 - Kamilski81
1个回答

10

将此放置在config/initializers/quiet_assets.rb中。

if Rails.env.development?
  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'] =~ %r{^/assets/}
      call_without_quiet_assets(env)
    ensure
      Rails.logger.level = previous_level
    end
    alias_method_chain :call, :quiet_assets
  end
end

这是解决该问题的常见方法。

也可以使用一个 gem。

gem 'quiet_assets', :group => :development

3
对这个宝石点个赞,它已成为我所有应用程序的标准。 - Jesse Wolgamott
为什么要使用quiet_assets而不是call_with_quiet_assets - Arnold Roa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接