Rails 3.2では、logger.silence {}を使用している場合、非推奨の警告が表示されます。リリースノート: "ActiveSupport :: BufferedLogger#silenceは非推奨です。特定のブロックのログをスケルチしたい場合は、そのブロックのログレベルを変更してください。Rails 3.2無音ロギングの非推奨警告
ブロックのログレベルを簡単に変更する方法はありますか?
Rails 3.2では、logger.silence {}を使用している場合、非推奨の警告が表示されます。リリースノート: "ActiveSupport :: BufferedLogger#silenceは非推奨です。特定のブロックのログをスケルチしたい場合は、そのブロックのログレベルを変更してください。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
、少なくともそれはもう減価償却の警告を生成しない、それは沈黙を行いますログ出力。
最初の回答は良いですが、完全ではありません。私たちはこの問題も解決しようとしていました。 )、さらに甘い、甘いカスタマイズについては
Rails.logger.silence do
# your code here...
end
、あなたは(#silenceするログレベルを渡すことができます:silence &block
は、あなたが直接ロガーを呼び出して、更新の構文を使用する必要がありますので、レール3に廃止されました。
quietly{}
silence
はストリームが必要なためです。
沈黙には1つの引数が必要ですか? https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/kernel/reporting.rb#L97 – kuboon
これはRails 3.2.xでは全く機能しません.kuboonは正しいです明白な「沈黙」には議論が必要です。 – astjohn