在Rails 3.2中,当使用logger.silence {}时,我会收到弃用警告。在发行说明中: “不推荐使用ActiveSupport :: BufferedLogger#silence。如果要压缩某个块的日志,请更改该块的日志级别。”
如何轻松更改块的日志级别?
答案 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
需要信息流。