Rails 3.2静默日志弃用警告

时间:2012-01-31 08:41:09

标签: ruby-on-rails logging

在Rails 3.2中,当使用logger.silence {}时,我会收到弃用警告。在发行说明中: “不推荐使用ActiveSupport :: BufferedLogger#silence。如果要压缩某个块的日志,请更改该块的日志级别。”

如何轻松更改块的日志级别?

4 个答案:

答案 0 :(得分:4)

logger.silence似乎正在替换silence

logger.silence do
    #your silenced code here
end

变为:

silence do
    #your silenced code here
end

至少它不再生成折旧警告,它会使记录的输出静音。

答案 1 :(得分:3)

第一个答案是好的,但不完整。我们也试图解决这个问题。 Rails 3中已弃用silence &block,因此您应该使用直接调用记录器的更新语法:

Rails.logger.silence do
  # your code here...
end

为了更加甜蜜,甜蜜的可定制性,您可以将日志级别传递给#silence()。

答案 2 :(得分:2)

def silent_method
  old_level = Rails.logger.level
  Rails.logger.level = 7

  result = your_code_here

  Rails.logger.level = old_level

  result
end

答案 3 :(得分:0)

quietly{},因为silence需要信息流。