在控制台中禁用Rails SQL日志记录

当我在控制台中执行命令时,有没有办法禁用SQL查询日志记录? 理想情况下,如果我可以禁用它并使用控制台中的命令重新启用它,那将是非常好的。

我试图调试一些东西,并使用“puts”打印出一些相关数据。 但是,sql查询输出使其难以阅读。


编辑:我发现了另一种解决方案,因为将记录器设置为零有时会引发错误,除非我的代码尝试调用logger.warn

您可以将记录器的级别设置为1而不是将记录器设置nil

ActiveRecord::Base.logger.level = 1 # or Logger::INFO

要关闭它:

old_logger = ActiveRecord::Base.logger
ActiveRecord::Base.logger = nil

重新打开它:

ActiveRecord::Base.logger = old_logger

这里有一个我认为更清洁的变体,它仍然允许来自AR的其他日志记录。 在config / environments / development.rb中:

config.after_initialize do
  ActiveRecord::Base.logger = Rails.logger.clone
  ActiveRecord::Base.logger.level = Logger::INFO
end

这可能不是适用于控制台的解决方案,但Rails有一个解决此问题的方法:记录器#沉默

ActiveRecord::Base.logger.silence do
  # the stuff you want to be silenced
end
链接地址: http://www.djcxy.com/p/63557.html

上一篇: Disable Rails SQL logging in console

下一篇: WARNING: Can't verify CSRF token authenticity rails