वर्तमान में मैं puts
का उपयोग कर रहा हूं, लेकिन मुझे यकीन है कि यह सही उत्तर नहीं है। puts
के बजाय मेरे आंतरिक लॉगिंग को आउटपुट करने के लिए, मैं अपने मणि के अंदर, लॉगर को सही ढंग से कैसे सेटअप करूं?मैं अपने रूबी मणि के अंदर सही तरीके से लॉग कैसे करूं?
उत्तर
एक छोटी सी उदाहरण: प्रारंभ के दौरान
gem 'log4r'
require 'log4r'
class MyClass
def initialize(name)
@log = Log4r::Logger.new(name)
#Add outputter
#~ log.outputters << Log4r::FileOutputter.new('log_file', :filename => 'mini_example.log', :level => Log4r::ALL)
log.outputters << Log4r::StdoutOutputter.new('log_stdout') #, :level => Log4r::WARN)
#~ log.outputters << Log4r::StderrOutputter.new('log_stderr', :level => Log4r::ERROR)
@log.level = Log4r::INFO
@log.info("Creation")
#~ @log.level = Log4r::OFF
end
attr_reader :log
def myfunction(*par)
@log.debug("myfunction is called")
@log.warn("myfunction: No parameter") if par.empty?
end
end
x = MyClass.new('x')
x.myfunction
y = MyClass.new('y')
y.myfunction
y.myfunction(:a)
y.log.level = Log4r::DEBUG
y.myfunction(:a)
आप लॉगर बनाएं (@log
)। अपनी विधियों में आप लॉगर को कॉल करते हैं।
@log.level=
(या MyClass#log.level=
) के साथ आप प्रभावित कर सकते हैं, कौन से संदेश उपयोग किए जाते हैं।
आप विभिन्न आउटपुट का उपयोग कर सकते हैं (मेरे उदाहरण में मैं STDOUT पर लॉग इन करता हूं)। तुम भी (एक फाइल करने के लिए जैसे चेतावनी के साथ STDOUT, प्रत्येक डेटा (डीबग सहित) ...) outputters मिश्रण कर सकते हैं
आपके मणि के उपयोगकर्ताओं के लिए सबसे लचीला दृष्टिकोण उन्हें मणि के अंदर स्थापित करने के बजाय एक लॉगर प्रदान करने देना है। इसके सरलतम पर इस हो सकता है
class MyGem
class << self
attr_accessor :logger
end
end
फिर आप MyGem.logger.info "hello"
का उपयोग अपने मणि से संदेश लॉग इन करने के
के उपयोगकर्ता (यदि आप एक उपयोगिता विधि है कि परीक्षण एक लकड़हारा सब पर सेट कर दिया जाता है कि क्या में लपेट कर सकते हैं) अपने मणि तो नियंत्रित कर सकते हैं जहां संदेशों को लॉग इन किया हो (एक फ़ाइल, syslog, stdout, आदि ...)
मुझे लगता है कि सबसे आसान दृष्टिकोण यह इस तरह से
Rails.logger.info "hello"
उपयोग करने के लिए
आप क्यों मानते हैं कि रेल का उपयोग किया जाता है? प्रश्न केवल रूबी और अपने मणि के बारे में बात करता है। – knut
व्यर्थ था। रेल के साथ मेरे मामले में यह सिर्फ मदद की है, तो ऑफटॉप के लिए खेद है। –
आप रख सकते है अपने शीर्ष-स्तर मॉड्यूल में लॉगर। उपयोगकर्ता को अपना लॉगर सेट करने दें, लेकिन उन लोगों के लिए उचित डिफ़ॉल्ट प्रदान करें जो लॉगिंग से निपटने की परवाह नहीं करते हैं। उदाहरण के लिए
module MyGem
class << self
attr_writer :logger
def logger
@logger ||= Logger.new($stdout).tap do |log|
log.progname = self.name
end
end
end
end
फिर, आपके मणि कोड के भीतर कहीं भी आप लॉगर तक पहुंच सकते हैं। उदाहरण के लिए
class MyGem::SomeClass
def some_method
# ...
MyGem.logger.info 'some info'
end
end
संदर्भ:
- 1. मैं अपने मणि
- 2. मैं परमजन आकार को सही तरीके से कैसे सेट करूं?
- 3. मैं प्रोग्राम को सही तरीके से कैसे संस्करणित करूं?
- 4. मैं लेआउट क्लास का सही तरीके से विस्तार कैसे करूं?
- 5. मैं अपने मणि निर्भरताओं सहित उबंटू के लिए रूबी एप्लिकेशन कैसे पैकेज करूं?
- 6. ksoap2-android का उपयोग करके मैं अपने PHP webservice को सही तरीके से कैसे कॉल करूं?
- 7. मैं अपने स्विंगवर्कर उदाहरण को सही तरीके से कैसे काम करूं?
- 8. अपने PHP अनुप्रयोगों को सही तरीके से कैसे तैनात करें?
- 9. setProgressDrawable() सही तरीके से उपयोग कैसे करें?
- 10. मैं अपने मणि में गैर-रूबी फाइल कहां रखूं?
- 11. मैं एएसएम कोड के भीतर से Instrumentation.retransformClasses() को सही तरीके से कैसे उपयोग करूं?
- 12. मैं एक बंडल के भीतर किसी अन्य बंडल पर निर्भरता कैसे सही तरीके से घोषित करूं?
- 13. डब्ल्यूपीएफ - एक क्षैतिज उन्मुख स्टैकपैन के अंदर टेक्स्टब्लॉक को सही तरीके से संरेखित कैसे करें?
- 14. रूबी डेमन्स लॉग रोटेशन
- 15. कस्टम कॉन्फ़िगरेशन को सही तरीके से लोड करने के लिए मैं ऑटोलोड का उपयोग कैसे करूं?
- 16. रूबी मणि
- 17. मैं स्रोत से एक मणि कैसे लोड करूं?
- 18. मैं क्यूटी में "ट्रे को कम करने" फ़ंक्शन को सही तरीके से कैसे कार्यान्वित करूं?
- 19. मैं PHP में ldap_search() का सही तरीके से उपयोग कैसे करूं?
- 20. मैं एक्सिस 2 क्लाइंट में डब्ल्यूएस-एड्रेसिंग का सही तरीके से उपयोग कैसे करूं?
- 21. निम्नलिखित तरीके से सही तरीके से कैसे अनुक्रमणित करें?
- 22. रेल ऐप के अंदर गिथब के गोल्म विकी को सही तरीके से कैसे माउंट करें?
- 23. मैं अपने परीक्षण सहायक में मणि 'मिनीटेस्ट' कैसे जोड़ूं?
- 24. मैं पहलुओं को सही तरीके से ऑर्डर करने के लिए ggplot कैसे प्राप्त करूं?
- 25. मैं यूएमएल के साथ मिश्रित/भूमिका/विशेषता का सही तरीके से प्रतिनिधित्व कैसे करूं?
- 26. मैं एक इंटरैक्टिव लॉगऑन के लिए LsaLogonUser को सही तरीके से कैसे कॉल करूं?
- 27. मैं UIViewController के नेविगेशन नियंत्रक शीर्षक को सही तरीके से कैसे सेट करूं?
- 28. एक स्क्रिप्ट के भीतर एक मणि स्थापित करने के बाद, मैं मणि कैसे लोड करूं?
- 29. एंड्रॉइड मैं स्विच से मूल्य को सही तरीके से कैसे प्राप्त करूं?
- 30. मैं मेनू में शॉर्टकट कुंजियों को सही तरीके से संरेखित कैसे करूं?
कृपया मेरे को अपडेट हुआ, मेरे शब्दों भ्रामक था। मैं अपने आंतरिक तरीकों के अंदर सही ढंग से लॉग इन करना चाहता हूं। – Kamilski81
मुझे यकीन नहीं है कि आप उसके बाद क्या कर रहे हैं। –
आपको बहुत बहुत धन्यवाद, मैं एक भयानक गलती करने वाला था। – Gerry