2012-05-30 7 views
5

ऐसा प्रतीत होता है कि हमारे पास रेल अनुप्रयोगों के अंदर Rails.logger और लॉगर तक पहुंच है। मैं समझता हूं कि दो लॉगर अलग हैं, लेकिन टैग किए गए बुफर्ड लॉगर पर बनाने के लिए यह आदर्श नहीं होगा और लॉगर के लिए एक उदाहरण होगा। दो उदाहरण क्यों हैं और इसका उपयोग करने का उचित समय क्या है?रेल 3.2 क्यों दो लॉगर्स का उपयोग करता है, ActiveSupport :: टैग की गईं लॉगिंग और ActiveSupport :: BufferedLogger?

उत्तर

7

BufferedLogger डिफ़ॉल्ट रेल लॉगर है। इसका उद्देश्य लॉगिंग थ्रेड-सुरक्षित बनाना है। वैकल्पिक रूप से, आप इस लॉगजर को टैग किए गए बुफर्ड लॉगर में लपेट सकते हैं और इसका उपयोग कर सकते हैं, अगर आप अपने लॉगिंग आउटपुट को 'टैग' करना चाहते हैं। 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 
संबंधित मुद्दे