抑制rails服务器输出

时间:2014-03-26 00:52:51

标签: ruby-on-rails

使用rails s运行rails服务器会导致大量文本输出到屏幕,因为它似乎以详细:info级别进行登录。在我调试时,有时我只是通过awesome_print打印一些变量来屏幕,并且不想在文本中进行筛选。

那么我可以将开发环境文件中的配置设置设置为完全抑制输出(除了ap调用的输出外)?

3 个答案:

答案 0 :(得分:0)

您可以通过自定义config/environments/development.rb文件来控制开发中记录的内容。

Here您可以找到有关各种选项的文档。

您可能想要设置:

  1. config.log_level
  2. config.assets.debug(控制资产编译,作为副作用,关闭资产编译消息)

答案 1 :(得分:0)

您可以使资产静音,只需获取开发的重要信息,只需在初始化程序中添加一个文件,例如 config / initializers / silent_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

答案 2 :(得分:0)

另一种选择是编辑文件 config / environments / development.rb ,并将日志级别设置为错误:

config.log_level = :error

然后用awesome_print打印

ap {a: 1, b: 2}

如果您从控制台启动服务器,如

script/rails s

在该控制台中,您将只看到awesome_print的输出