पेटीएम पेटी जॉय # 1: loguru

आज हम चर्चा करेंगे कि किसी को मानक logging पायथन लॉगर के प्रतिस्थापन की आवश्यकता क्यों है और इस चीज का उपयोग कैसे करना है।



यह बीमार है!


जब पायथन में logging बात आती है, तो logging तुरंत दिमाग में आती है।


logging एक मजबूत, स्थिर समाधान है जो पायथन पारिस्थितिकी तंत्र में कसकर अंतर्निहित है। आप इसे आवश्यक रूप से आयात करते हैं, कुछ जोड़-तोड़ करते हैं - और यह सब, यह इस तरह का है कि आप प्रतिष्ठित logger.exception('--') को कैसे लिख सकते हैं। logger.exception('--') । और '--' प्रविष्टि किसी प्रकार की पत्रिका में समाप्त हो जाएगी।


उसके बाद, आमतौर पर डेवलपर्स ठीक उसी जगह में रुचि रखते हैं जहां '--' मिला और इस रिकॉर्ड के साथ क्या होता है। प्रोग्रामर लकड़हारे की सेटिंग में चढ़ जाते हैं और विभिन्न विकल्पों के ढेर का उपयोग करके उसे फाइलों, डेटाबेस, त्रुटि संग्रहकर्ताओं और लॉग रिकॉर्ड के संभावित भंडारण के अन्य स्थानों में रिकॉर्ड को सही ढंग से धकेलने के लिए सिखाने के लिए शुरू करते हैं।


लकड़हारे के लिए कन्फ़िगर्स दिखाई देते हैं, जो एक बोझिल से शुरू होता है, लेकिन कम या ज्यादा समझने योग्य होता है:


 LOGGER_CONFIG = { "version": 1, "disable_existing_loggers": False, "formatters": { "simple": { "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s" } }, "handlers": { "console": { "class": "logging.StreamHandler", "level": "DEBUG", "formatter": "simple", "stream": "ext://sys.stdout" }, }, "root": { "level": "INFO", "handlers": ["console"] } } 

इस तरह के विन्यास तेजी से कुछ अधिक अपचनीय की ओर विकसित हो रहे हैं। logging लिए सामान्य रूप से कॉन्फ़िगर किया गया कॉन्फ़िगरेशन, logging के विभिन्न स्तरों के साथ, विभिन्न संदेश संग्राहक और लॉग फ़ाइलों का रोटेशन पाठ का एक बड़ा टुकड़ा है जो पहले से ही खोदने के लिए वास्तव में मुश्किल है।


चोट न लगे और सुखद भी


एक बार प्रोग्रामर के एक जोड़े को logging लिए कई कॉन्फ़िगरेशन विकल्पों में अंत में खुदाई (और गलतियाँ) करने के लिए बीमार हो गया। इन इंजीनियरों ने एक ही समय में अपने स्वयं के लकड़हारे को लिखा, बेहद सरल और बहुत शक्तिशाली। इस चीज को लोगुरु कहते हैं।


और यहां इस लाइब्रेरी का एक डेमो है, और यह पूरी तरह से दिखाता है कि एक दो लाइनों में अपने शक्तिशाली एप्लिकेशन में लॉगिंग स्थापित करना कैसे संभव है।



आपको logging विकल्प के रूप में loguru पर विचार क्यों करना चाहिए?


  • सादगी। इसके बारे में, मैंने पहले ही ऊपर कहा है, लेकिन मैं इसे फिर से कहूंगा - logging तुलना में loguru सही ढंग से कॉन्फ़िगर करना आसान है।
  • लॉग फ़ाइल रोटेशन को कॉन्फ़िगर करने और पुराने रिकॉर्ड को संग्रहीत करने के स्पष्ट तरीके।
  • बैटरी के ढेर पहले से ही बॉक्स में शामिल हैं - संदेश के रंग, स्वरूपण, ई-मेल को विफलता सूचनाएं, क्रैश रिपोर्ट और कई अन्य अच्छी सुविधाओं के साथ फ़ंक्शन कॉल ढेर।
  • और, ज़ाहिर है, अतुल्यकालिक! हाँ, पायथन की दुनिया आगे और आगे की तरफ एस्क् यूनिक / वेट की ओर जाती है, और सभी पावर-भूखे प्रोग्रामिंग की इस टेक्टोनिक शिफ्ट में स्पष्ट रूप से अतुल्यकालिक लॉगर्स की आवश्यकता होती है।

बेशक, आपको हर चीज के लिए भुगतान करना होगा। और loguru के उपयोग के लिए loguru दो चीजों का भुगतान करना होगा:


  • लिबा अपेक्षाकृत युवा है और आश्चर्य हो सकता है।
  • लेखक logging के साथ पूर्ण संगतता का वादा करते हैं, लेकिन आप logging लिए तीसरे पक्ष के पुस्तकालयों के साथ loguru को जोड़ने में अच्छी तरह से समस्याओं का सामना कर सकते हैं। उदाहरण के लिए, संतरी या एयरब्रेके के लिए हैंडलर संलग्न करते समय।

इन संभावित कठिनाइयों के बावजूद, loguru सावधानीपूर्वक परीक्षण किया जा रहा है और आपकी अगली परियोजना में पहले से ही बंधा हुआ है।

Source: https://habr.com/ru/post/hi454436/


All Articles