लॉगिंग आपकी रूबी एप्लिकेशन क्या कर रही है, इसके बारे में जानकारी सहेजने की प्रक्रिया है।
यह विकास और उत्पादन परिवेश दोनों में बहुत मददगार है।
क्यों?
क्योंकि लॉगिंग का पूरा उद्देश्य यह जानकारी एकत्र करना है कि क्या हुआ, क्या गलत हुआ और क्या सही हुआ।
सभी प्रकार की जानकारी लॉग की जा सकती है :
- धीमी SQL क्वेरी (ताकि आप उन्हें ढूंढ और ठीक कर सकें)
- त्रुटि संदेश
- विस्तृत अनुरोध जानकारी (यूआरएल, नियंत्रक, पैरामीटर, दृश्य…)
इस जानकारी के साथ, आप निदान कर सकते हैं और अपने आवेदन में समस्याओं के स्रोत का तेजी से पता लगा सकते हैं।
रेल ऐप में, लॉग /log
. के अंतर्गत संग्रहीत किए जाते हैं फ़ोल्डर।
विकास मोड में, development.log
फ़ाइल का उपयोग किया जाता है और आप उस टर्मिनल पर लॉग आउटपुट देखते हैं जिसे आप चला रहे हैं rails server
चालू।
अब :
आइए जानें कि आप Logger
. का उपयोग करके रूबी में लॉगिंग कैसे कर सकते हैं कक्षा!
द लॉगर क्लास
रूबी लकड़हारा वर्ग आपको एक डिफ़ॉल्ट आउटपुट स्वरूप और गंभीरता के विभिन्न स्तरों के साथ लॉग उत्पन्न करने का एक तरीका देता है।
यहां लॉग बनाने का तरीका बताया गया है :
logger = Logger.new("my_log.txt")
यह लॉगिंग संदेशों को my_log.txt
. पर लिखेगा ।
यदि आप टर्मिनल पर संदेश प्रदर्शित करना चाहते हैं, जहां प्रोग्राम चल रहा है, तो आप STDOUT
पर लॉग इन कर सकते हैं ।
इसे पसंद करें :
logger = Logger.new(STDOUT)
लॉगिंग संदेशों के विभिन्न स्तर हो सकते हैं, यह इस बात पर निर्भर करता है कि वे कितने महत्वपूर्ण हैं।
स्तर हैं :
- डीबग
- जानकारी
- चेतावनी
- त्रुटि
- FATAL
- अज्ञात
प्रत्येक स्तर की एक समान आवृत्ति विधि होती है।
तो अगर आप “जानकारी” लॉग करना चाहते हैं।
यह करें :
logger.info("I'm reading a RubyGuide about logging!")
वास्तविक लॉग प्रविष्टि इस तरह दिखती है :
# I, [2019-08-08T19:22:00.152079 #642] INFO -- : I'm reading a RubyGuide about logging!
इन विभिन्न स्तरों के होने से आपको अपनी लॉग फ़ाइल को फ़िल्टर करने में मदद मिलती है, ताकि आप जो खोज रहे हैं उसे तेज़ी से पा सकें!
यह आपको यह देखने में भी मदद करता है कि आप समय के साथ कितनी त्रुटियाँ और चेतावनी संदेश उत्पन्न करते हैं।
बढ़िया सामान!
अपने लॉग्स को कैसे फॉर्मेट करें
अपने रूबी लॉग के लिए डिफ़ॉल्ट आउटपुट स्वरूप का उपयोग करना बहुत अच्छा है क्योंकि इसके चारों ओर उपकरण बनाए जा सकते हैं और अधिक लोग समझ सकते हैं कि यह कैसे काम करता है।
यहां फिर से एक लॉग लाइन दी गई है :
# I, [2019-08-08T19:22:00.152079 #642] INFO -- : test
इसमें कुछ घटक हैं :
- “I” गंभीरता के स्तर के पहले अक्षर का प्रतिनिधित्व करता है
- कोष्ठक के अंदर, आप उस प्रक्रिया की टाइमस्टैम्प और प्रक्रिया आईडी (PID) पाते हैं जिसने इस लॉग संदेश को उत्पन्न किया
- जानकारी गंभीरता स्तर का पूरा नाम है
- कोलन के बाद, हमारे पास वास्तविक संदेश है जो लॉग किया गया था
लेकिन यह प्रारूप सभी के लिए आदर्श नहीं हो सकता है।
तो रूबी आपको इसे बदलने की अनुमति देती है!
यहां बताया गया है :
logger.formatter = proc { |severity, datetime, progname, msg| "#{severity}, #{datetime}, #{msg}\n" }
परिणामस्वरूप, आपको यह आउटपुट मिलता है :
DEBUG, 2019-08-08 19:39:01 +0200, testing
आप इसका उपयोग अतिरिक्त जानकारी जोड़ने के लिए कर सकते हैं जो आपके और आपकी टीम के लिए उपयोगी हो सकती है।
अपने लॉग साइज को कैसे सीमित करें
लॉग वास्तव में बड़ी फ़ाइलें बन सकते हैं जब तक कि आप उनके आकार पर नज़र नहीं रखते।
यदि लॉग के कारण आपका डिस्क स्थान समाप्त हो जाता है, तो आपके सिस्टम में हर तरह की अजीब चीजें होने लगती हैं।
एक समाधान है!
आप अपने लॉग के आकार को सीमित कर सकते हैं।
यहां बताया गया है :
MEGABYTE = 1024 ** 2 ONE_HUNDRED_MEGABYTES = MEGABYTE * 100 logger = Logger.new("my_log.txt", 1, ONE_HUNDRED_MEGABYTES)
पहला पैरामीटर वह है जहां लॉग संदेशों को सहेजना है।
दूसरा पैरामीटर यह है कि आप कितनी लॉग फ़ाइलें रखना चाहते हैं (लॉग रोटेशन), और अंतिम पैरामीटर अधिकतम फ़ाइल आकार है।
लॉग रीडिंग और फ़िल्टरिंग
ठीक है, आपको अपने लॉग मिल गए हैं।
आप उन्हें कैसे पढ़ते हैं और आपको जो चाहिए उसे ढूंढते हैं?
लॉग सादा-पाठ फ़ाइलें हैं, इसलिए आप अपनी पसंद के किसी भी पाठ-संसाधन उपकरण का उपयोग कर सकते हैं।
उदाहरण के लिए :
ग्रेप.
यह एक कमांड-लाइन टूल है जिसका उपयोग आप टेक्स्ट फ़ाइलों को फ़िल्टर करने के लिए कर सकते हैं।
यहां बताया गया है :
grep INFO my_log.txt
यह आपको हर पंक्ति देता है जिसे "INFO" के रूप में लॉग किया गया है।
आप कोई अन्य लेख . खोज सकते हैं grep
. का उपयोग करके अपने लॉग के अंदर , बस "जानकारी" को आप जो खोज रहे हैं उससे बदलें।
एक अन्य यूनिक्स टूल जिसका आप उपयोग कर सकते हैं, उसे less
कहा जाता है (-R विकल्प के साथ)।
यह आपको केवल अपने कीबोर्ड का उपयोग करके लॉग में स्क्रॉल करने की अनुमति देता है और इसमें एक खोज फ़ंक्शन . है ।
आप भी उपयोग कर सकते हैं…
लॉग प्रबंधन और खोज के लिए विशिष्ट उपकरण।
प्रवचन के लॉगस्टर रत्न की तरह।
सारांश
आपने रूबी में लॉग इन करने के बारे में सीखा है, यह क्या है, यह कैसे काम करता है, और इसका उपयोग कैसे करें।
अब इसे आजमाने की आपकी बारी है।
पढ़ने के लिए धन्यवाद!