在Rails 3.2中,当使用logger.silence {}时,我得到弃用警告。在发行说明中: “不支持ActiveSupport :: BufferedLogger#沉默,如果要为特定块禁用日志,请更改该块的日志级别。”Rails 3.2静默日志弃用警告
如何轻松更改块的日志级别?
在Rails 3.2中,当使用logger.silence {}时,我得到弃用警告。在发行说明中: “不支持ActiveSupport :: BufferedLogger#沉默,如果要为特定块禁用日志,请更改该块的日志级别。”Rails 3.2静默日志弃用警告
如何轻松更改块的日志级别?
def silent_method
old_level = Rails.logger.level
Rails.logger.level = 7
result = your_code_here
Rails.logger.level = old_level
result
end
看来,logger.silence
正在通过简单地更换silence
:
logger.silence do
#your silenced code here
end
变为:
silence do
#your silenced code here
end
至少它不产生折旧警告了,而且它的沉默记录的输出。
第一个答案很好,但不完整。我们也试图找出这个问题。 silence &block
已被弃用,在Rails 3中,所以你应该使用更新的语法直接调用记录:
Rails.logger.silence do
# your code here...
end
为了获得更大的甜,甜定制,你可以传递一个日志级别#silence()。
或quietly{}
,因为silence
需要一个流。
沉默应该有一个说法,不应该吗? https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/kernel/reporting.rb#L97 – kuboon 2013-04-14 05:19:54
这在Rails 3.2.x中完全不起作用,而kuboon是正确的简单的'沉默'需要一个论点。 – astjohn 2013-11-04 19:39:02