2009-09-27 9 views
13

मेरे पास एक छोटा ढांचा है जो रूबी में निर्मित लॉगर ऑब्जेक्ट का उपयोग करके कुछ जानकारी लॉग और संदेशों को डीबग कर रहा है। रन टाइम पर, यह बहुत अच्छा काम करता है। इकाई परीक्षण समय पर (यदि यह मायने रखता है तो rspec का उपयोग कर ...) मैं लॉग संदेशों को स्मृति स्ट्रिंग चर में डंप करना चाहता हूं। ऐसा करने के लिए जाने का सबसे आसान तरीका क्या है?रूबी: एक स्ट्रिंग चर में लॉगजर संदेश भेजें?


class Logger 
    def info msg 
    $logs = msg 
    super msg 
    end 
end 

वहां एक स्ट्रिंग चर के लिए मेरी लॉग संदेश भेजने के बारे में जाने के लिए एक बेहतर तरीका है:

मैं एक बंदर पैच कि जानकारी और डिबग तरीकों की जगह लेंगे, इस तरह विचार कर रहा था?

उत्तर

29

उपयोग StringIO

require 'stringio' 
require 'logger' 

strio = StringIO.new 
l = Logger.new strio 
l.warn "whee, i am logging to a string!" 

puts strio.string 
+0

बस एक rubyish शैली के लिए कोष्ठकों को हटा दें। – khelll

+2

अभिभावक हटा दिए गए। निजी तौर पर, मैं ब्रांड्स का उपयोग करना पसंद करता हूं, लेकिन मैंने इसे प्रश्न में इस्तेमाल कोडिंग शैली के साथ अधिक संगत होने के लिए संपादित किया। – hrnt

+0

धन्यवाद, एचआरएनटी। यह वही है जो मैं खोज रहा था! –

संबंधित मुद्दे