当我在控制台中执行命令时,是否有方法禁用SQL查询日志记录?理想情况下,如果我可以禁用它,并在控制台中使用命令重新启用它,那就太好了。
我试图调试一些东西,并使用“放”打印出一些相关数据。但是,sql查询输出使其难以阅读。
编辑:
我找到了另一个解决方案,因为设置记录器为nil有时会引发一个错误,如果我的代码之外的东西试图调用logger.warn
您可以将记录器的级别设置为1,而不是将记录器设置为nil。
ActiveRecord::Base.logger.level = 1 # or Logger::INFO
我必须解决这个ActiveRecord 6,我基于我的答案假左的响应,但它不是很正确,因为它抑制了其他日志记录,如嵌套视图的日志记录。我所做的是创建config/initializers/activerecord_logger.rb:
# Suppress SQL statement logging if necessary
# This is a dirty, dirty trick, but it works:
if ENV["ACTIVERECORD_HIDE_SQL"].present?
module ActiveRecord
class LogSubscriber
def sql(event)
end
end
end
end
AR 6中的日志订阅者有一个我们想要隐藏的sql事件,因此这非常有针对性地跳过该事件。