在控制台中禁用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