जब भी हम सॉफ्टवेयर बनाते हैं और चलाते हैं, तो कुछ एरर्स या एक्सेप्शन्स उत्पन्न हो सकते हैं जो सॉफ्टवेयर के सामान्य निष्पादन में बाधा डालते हैं। लॉगिंग हमें उन घटनाओं का ट्रैक रखने में मदद करती है जो सॉफ्टवेयर चलने पर होती हैं। लॉगिंग आमतौर पर सॉफ्टवेयर डेवलपमेंट प्रोसेस में विशेष रूप से डीबगिंग और रनिंग में उपयोगी होती है। यदि हमारे पास लॉगिंग सुविधा नहीं है, और हमारा प्रोग्राम क्रैश हो जाता है, तो हमारे लिए समस्या का कारण पहचानना बहुत मुश्किल होगा। हम छोटे प्रोग्राम्स में समस्या का पता लगा सकते हैं लेकिन वास्तविक दुनिया में जटिल प्रोग्राम होते हैं, इसलिए मैन्युअली समस्याओं का पता लगाना असंभव है। यदि संभव हो, तो यह बहुत समय लेने वाला है।
Python में हमारे उपयोग के लिए एक इन-बिल्ट लॉगिंग मॉड्यूल है जो हमारी इस समस्या को हल करता है। लॉगिंग एक बहुत उपयोगी टूल है। यह हमें प्रोग्राम के फ्लो को बेहतर ढंग से समझने में मदद करता है और उन समस्याओं या परिदृश्यों के बारे में सूचित करता है जिनके बारे में हम डेवलपिंग प्रोसेस के दौरान नहीं सोच पाए होंगे।
लॉगिंग मॉड्यूल
Python में हमारे उपयोग के लिए लॉगिंग मॉड्यूल तैयार है। हमें बस इसे अपने प्रोग्राम में इम्पोर्ट करना होगा, जो नीचे दिखाया गया है
import logging
लॉगिंग मॉड्यूल हमें स्टेटस मैसेजेस को फ़ाइल या अन्य आउटपुट स्ट्रीम्स में लिखने में मदद करता है। फ़ाइल में अन्य जानकारी शामिल हो सकती है, जिसमें कोड का कौन सा हिस्सा निष्पादित हुआ और कौन सी समस्याएं उत्पन्न हुईं।
लॉगिंग मॉड्यूल के साथ, हम उन मैसेजेस को लॉग करने के लिए "logger" का उपयोग कर सकते हैं जिन्हें हम देखना चाहते हैं। डिफ़ॉल्ट रूप से, लॉग मैसेजेस के 5 लेवल होते हैं जो घटनाओं की गंभीरता को दर्शाते हैं।
गंभीरता के बढ़ते क्रम में निम्नलिखित 5 लेवल हैं।
DEBUG - विस्तृत जानकारी देने के लिए उपयोग किया जाता है; समस्याओं का निदान करते समय उपयोग किया जाता है।
INFO - यह पुष्टि करने के लिए उपयोग किया जाता है कि चीजें अपेक्षा के अनुरूप सही ढंग से काम कर रही हैं।
WARNING - जैसा कि नाम से पता चलता है, यह कुछ मैसेज देने के लिए उपयोग किया जाता है जो हमें किसी ऐसी समस्या के बारे में सूचित करता है जो भविष्य में समस्या पैदा कर सकती है।
ERROR - एरर मैसेज देने के लिए उपयोग किया जाता है, कि एप्लिकेशन या सॉफ्टवेयर कुछ फंक्शन करने में विफल रहा है।
CRITICAL - यह एक गंभीर समस्या के बारे में सूचित करता है जो दर्शाता है कि प्रोग्राम प्रदर्शन करना बंद कर सकता है।
लॉगिंग मॉड्यूल हमें एक डिफ़ॉल्ट लॉगर प्रदान करता है, जो हमें अधिक कॉन्फिगरेशन के बिना आगे बढ़ने की अनुमति देता है।
उदाहरण
import logging
logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')आउटपुट
WARNING:root:This is a warning message ERROR:root:This is an error message CRITICAL:root:This is a critical message
नोट: info() और debug() मैसेज लोड नहीं होते। ऐसा इसलिए है क्योंकि डिफ़ॉल्ट रूप से, लॉगर वार्निंग और उससे अधिक गंभीरता के मैसेजेस को लोड करता है। इसलिए यदि आपको सभी गंभीरता के लॉग मैसेजेस लोड करने हैं, तो आपको लॉगर को मैन्युअली कॉन्फिगर करना होगा।