5

Rails アプリケーション内の Rails.logger と logger にアクセスできるようです。2 つのロガーが異なることは理解していますが、TaggedBufferedLogger で作成し、ロガーのインスタンスを 1 つにするのは理想的ではありません。なぜ 2 つのインスタンスがあり、どちらを使用するのに適切な時期はいつですか?

4

1 に答える 1

7

BufferedLogger はデフォルトの Rails ロガーです。その目的は、ロギングをスレッドセーフにすることです。オプションで、ログ出力に「タグ付け」したい場合は、このロガーを 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
于 2012-05-31T06:52:49.230 に答える