抑制特定ActiveRecord请求的Rails日志记录

时间:2014-07-02 06:08:50

标签: ruby-on-rails activerecord logging

我知道可以使用silencer gem为整个控制器抑制Rails日志记录。但是,某些ActiveRecord请求的SQL输出可以通过将其包装到某些语句中来单独抑制吗?

2 个答案:

答案 0 :(得分:4)

<强>沉默

我的问题没有具体的答案,但我们使用ActiveRecord::Base.logger.silence来取消记录器的静音:

    ActiveRecord::Base.logger.silence do
        # your method here
    end

它不适用于特定请求,但适用于您可能希望停止记录的操作。也许你可以延长ActiveRecord::Base来沉默一个特定的方法?

-

扩展ActiveRecord

也许您可以将我所描述的内容与扩展ActiveRecord混合使用?关于this question的建议是使用ActiveRecord问题。

我从未使用过其中一种 - 如果你觉得适用,可以把一些代码放在一起

答案 1 :(得分:1)

我用这个:

save_for_later = ActiveRecord::Base.logger
ActiveRecord::Base.logger = nil #turns off sql activity
... do stuff...
ActiveRecord::Base.logger = save_for_later

我从未在生产代码btw中做过这件事,只在rake任务中......