logging मॉड्यूल की मूल बातें
लॉगर कॉन्फ़िगर करें, स्तर निर्धारित करें और संदेश उचित रूप से जारी करें।
logging मॉड्यूल की मूल बातें, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
print की जगह लॉगिंग क्यों?
logging मॉड्यूल गंभीरता स्तर, कॉन्फ़िगर किए जा सकने वाले आउटपुट गंतव्य, टाइमस्टैम्प और कोड में बदलाव किए बिना आउटपुट को शांत करने की सुविधा देता है।
import logging
logging.basicConfig(level=logging.DEBUG)
logging.debug("debug message")
logging.info("info message")
logging.warning("warning message")
logging.error("error message")
logging.critical("critical message")लॉग स्तर
Python बढ़ती गंभीरता के क्रम में पाँच मानक स्तर परिभाषित करता है: DEBUG, INFO, WARNING, ERROR, CRITICAL। केवल कॉन्फ़िगर किए गए स्तर या उससे ऊपर के संदेश जारी किए जाते हैं।
import logging
# Numeric values:
# DEBUG = 10
# INFO = 20
# WARNING = 30
# ERROR = 40
# CRITICAL = 50
logging.basicConfig(level=logging.WARNING)
logging.debug("hidden") # not shown
logging.warning("shown") # shownलॉगर प्राप्त करना
हर मॉड्यूल में logging.getLogger(__name__) का उपयोग करें। इससे मॉड्यूल संरचना से मेल खाता हुआ पदानुक्रम बनता है।
import logging
logger = logging.getLogger(__name__)
def process(data):
logger.info("Processing %d items", len(data))
return [x * 2 for x in data]basicConfig विकल्प
basicConfig रूट लॉगर को जल्दी से कॉन्फ़िगर करता है। सामान्य कीवर्ड आर्ग्युमेंट हैं: level, format, filename, filemode।
import logging
logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)s %(levelname)s %(name)s — %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)लॉग प्रारूप फ़ील्ड
मुख्य प्रारूप फ़ील्ड हैं: %(levelname)s, %(name)s, %(message)s, %(asctime)s, %(filename)s, %(lineno)d।
import logging
fmt = "%(asctime)s | %(levelname)-8s | %(name)s:%(lineno)d | %(message)s"
logging.basicConfig(level=logging.DEBUG, format=fmt)
logging.info("Server started on port 8080")अपवादों की लॉगिंग
संदेश AND पूरा स्टैक ट्रेस लॉग करने के लिए अपवाद ब्लॉक के अंदर logger.exception() का उपयोग करें।
import logging
logger = logging.getLogger(__name__)
try:
1 / 0
except ZeroDivisionError:
logger.exception("Division failed")
# Logs message + traceback automaticallyextra= के साथ अतिरिक्त संदर्भ
लॉग रिकॉर्ड में कस्टम फ़ील्ड जोड़ने के लिए extra= के रूप में एक डिक्शनरी पास करें।
import logging
logger = logging.getLogger(__name__)
logging.basicConfig(
format="%(asctime)s %(levelname)s [%(user)s] %(message)s"
)
logger.info("Login successful", extra={"user": "alice"})विलंबित स्ट्रिंग फ़ॉर्मैटिंग
फ़ॉर्मैट आर्ग्युमेंट अलग-अलग पास करें—स्ट्रिंग को पहले से फ़ॉर्मैट न करें। इससे संदेश फ़िल्टर हो जाने पर स्ट्रिंग बनाने की लागत बचती है।
import logging
logger = logging.getLogger(__name__)
# BAD (always builds the string):
logger.debug(f"Processing {len(data)} items")
# GOOD (only builds if DEBUG is enabled):
logger.debug("Processing %d items", len(data))लॉगिंग अक्षम करना
वैश्विक रूप से उस स्तर तक के सभी संदेशों को दबाने के लिए logging.disable(level) कॉल करें—यह परीक्षणों में उपयोगी है।
import logging
logging.disable(logging.CRITICAL) # suppress everything
# All log calls now silently do nothing
logging.disable(logging.NOTSET) # re-enableलॉगर पदानुक्रम
लॉगर नामों में विभाजक के रूप में डॉट का उपयोग होता है। जब तक propagate=False न हो, चाइल्ड लॉगर पैरेंट लॉगर तक रिकॉर्ड आगे भेजते हैं।
import logging
parent = logging.getLogger("myapp")
child = logging.getLogger("myapp.database")
# child propagates to parent by default
child.warning("DB slow") # also appears in myapp's handlersरूट लॉगर
रूट लॉगर (logging.warning() आदि से प्राप्त) सभी लॉगर का पूर्वज है। इसे basicConfig से या सीधे हैंडलर जोड़कर कॉन्फ़िगर करें।
import logging
root = logging.getLogger() # root logger
root.setLevel(logging.DEBUG)
handler = logging.StreamHandler()
root.addHandler(handler)त्वरित जाँच
पूरा स्टैक ट्रेस अपने-आप शामिल करने के लिए अपवाद ब्लॉक के अंदर लॉगिंग की कौन-सी विधि उपयोग करनी चाहिए?
पुनरावलोकन
getLogger(__name__) से नामित लॉगर का उपयोग करें, basicConfig के ज़रिए कॉन्फ़िगर करें, फ़ॉर्मैट आर्ग्युमेंट विलंबित रूप से पास करें और त्रुटि स्टैक ट्रेस के लिए logger.exception() का उपयोग करें। लॉगर का पदानुक्रम रूट लॉगर पर आधारित होता है।
एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 76
- पाठ
- 320
अक्सर पूछे जाने वाले प्रश्न
क्या “logging मॉड्यूल की मूल बातें” पाठ निःशुल्क है?
हाँ—“logging मॉड्यूल की मूल बातें” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“logging मॉड्यूल की मूल बातें” में मैं क्या सीखूँगा?
लॉगर कॉन्फ़िगर करें, स्तर निर्धारित करें और संदेश उचित रूप से जारी करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“logging मॉड्यूल की मूल बातें” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- logging मॉड्यूल की मूल बातें
- हैंडलर, फ़ॉर्मैटर और फ़िल्टर
- संरचित लॉगिंग
- pdb से डीबगिंग