2012-05-30 5 views
5

私たちはRails.loggerとRailsアプリケーション内のロガーにアクセスできるようです。私は2つのロガーが異なっていることを理解しますが、TaggedBufferedLoggerで作成し、ロガーのための単一のインスタンスを持つことは理想的ではありません。なぜ2つのインスタンスがあり、使用する適切な時間は何ですか?なぜレール3.2はActiveSupport :: TaggedLoggingとActiveSupport :: BufferedLoggerの2つのロガーを使用しますか?

答えて

7

デフォルトのRailsロガーはBufferedLoggerです。その目的は、スレッドセーフなログを作成することです。 ログ出力を「タグ付け」する場合は、このロガーをTaggedBufferedLoggerにラップして使用することもできます。 weblog.railsから

ストレート

Tagged logger 

When you’re running a multi-user, multi-account application, it’s a great help to be able to filter the log by who did what. Enter the TaggedLogging wrapper. It works like this: 

Logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT)) 
Logger.tagged("BCX") { Logger.info "Stuff" } # Logs "[BCX] Stuff" 
Logger.tagged("BCX") do 
    Logger.tagged("Jason") do 
    Logger.info "Stuff" # Logs "\[BCX\] \[Jason\] Stuff" 
    end 
end 
関連する問題