Python:
लॉगिंग
कैसे करें:
पायथन में लॉगिंग के लिए एक बिल्ट-इन मॉड्यूल आता है। यहाँ एक बुनियादी सेटअप है:
import logging
# लॉगिंग का बुनियादी कॉन्फिगरेशन
logging.basicConfig(level=logging.INFO)
# लॉगिंग संदेश
logging.debug('यह एक डिबग संदेश है')
logging.info('जानकारी कि आपका प्रोग्राम अभी क्या किया')
logging.warning('एक चेतावनी संदेश')
logging.error('एक त्रुटि हुई है')
logging.critical('प्रोग्राम ठीक से रिकवर नहीं कर पा रहा है!')
जब आप यह कोड चलाते हैं, तो आपको निम्नलिखित आउटपुट दिखाई देगा (क्योंकि डिफ़ॉल्ट स्तर वॉर्निंग है, डिबग और इन्फो संदेश नहीं दिखाए जाएंगे):
WARNING:root:एक चेतावनी संदेश
ERROR:root:एक त्रुटि हुई है
CRITICAL:root:प्रोग्राम ठीक से रिकवर नहीं कर पा रहा है!
आप कंसोल के स्थान पर एक फाइल में लॉगिंग सेटअप करने के लिए भी कर सकते हैं:
logging.basicConfig(filename='app.log', filemode='w', level=logging.INFO)
अब आपके लॉग्स ‘app.log’ फाइल में निर्देशित हो जाएंगे।
गहराई से जानकारी
लॉगिंग प्रोग्रामिंग के शुरुआती दिनों से ही आ रही है, सिस्टम लॉग्स डेटा धारण करने वाली वास्तविक फ़ाइलों के बाहर सबसे पुराने स्थायी संग्रहण के रूपों में से एक है। इतिहास को छोड़कर, लॉगिंग की मुख्य अवधारणा अनिवार्य रूप से अपरिवर्तित रहती है, हालांकि उपकरण विकसित हुए हैं।
पायथन का logging
मॉड्यूल काफी शक्तिशाली और लचीला है। यह अलग-अलग लॉग स्तर (DEBUG, INFO, WARNING, ERROR, CRITICAL) सेट करने की अनुमति देता है जो लॉग्स को वर्गीकृत करने और फ़िल्टर करने में मदद कर सकते हैं। इसमें एक पदानुक्रमित लॉगर सिस्टम है, अर्थात् आपके पास लॉगर्स के बीच माता-पिता और बच्चे के संबंध हो सकते हैं और संदेशों को श्रृंखला ऊपर पहुंचाया जा सकता है।
विकल्पों में तृतीय-पक्ष पुस्तकालयों जैसे कि Loguru या structlog शामिल हैं जो बिल्ट-इन लॉगिंग मॉड्यूल की तुलना में संवर्धित सुविधाएँ और एक सरल इंटरफ़ेस प्रदान करते हैं। वे सुंदर आउटपुट, संरचित डेटा का बेहतर सीरियलाइजेशन, और लॉग कॉन्फ़िगरेशन से निपटने के अधिक सहज तरीके प्रदान कर सकते हैं।
कार्यान्वयन के संबंध में, जब लॉगिंग को सेटअप किया जाता है, तो यह महत्वपूर्ण होता है कि इसे एप्लिकेशन की शुरुआत में एक बार किया जाए। इसे मॉड्यूल-स्तर पर कॉन्फ़िगर करना logging.getLogger(__name__)
का उपयोग करते हुए पायथन लॉगिंग की सर्वोत्तम प्रथाओं का पालन करने की सिफ़ारिश की जाती है।
लॉगिंग को सामान्य परिस्थितियों में एक एप्लिकेशन के प्रदर्शन को काफी प्रभावित नहीं करना चाहिए। हालाँकि, इस बात का ध्यान रखा जाना चाहिए कि क्या लॉग किया जा रहा है: अत्यधिक वाचाल लॉगिंग, विशेषकर DEBUG स्तरों पर, एक एप्लिकेशन को धीमा कर सकती है और जल्दी से लॉग फ़ाइल स्टोरेज को भर सकती है।
देखें भी
पायथन के लॉगिंग मॉड्यूल पर और जानकारी के लिए, आधिकारिक पायथन लॉगिंग कुकबुक को देखें जिसमें कुछ उत्कृष्ट उदाहरण और सर्वोत्तम प्रथाएँ हैं: https://docs.python.org/3/howto/logging-cookbook.html
संरचित लॉगिंग पर गहराई से नज़र डालने के लिए और यह कैसे लॉग्स को अधिक सूचनात्मक और विश्लेषण करने में आसान बना सकता है, Loguru अच्छी तरह से दस्तावेजीकृत है: https://loguru.readthedocs.io
साथ ही, एप लॉगिंग पर आधुनिक दृष्टिकोण के लिए 12-फैक्टर एप मेथडोलॉजी, विशेषकर लॉग्स पर सेक्शन पर नज़र डालें: https://12factor.net/logs