在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