Python Academy · पाठ

logging मॉड्यूल की मूल बातें

लॉगर कॉन्फ़िगर करें, स्तर निर्धारित करें और संदेश उचित रूप से जारी करें।

पाठ 1, कुल 4 में से13 चरण

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 automatically

extra= के साथ अतिरिक्त संदर्भ

लॉग रिकॉर्ड में कस्टम फ़ील्ड जोड़ने के लिए 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 पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. logging मॉड्यूल की मूल बातें
  2. हैंडलर, फ़ॉर्मैटर और फ़िल्टर
  3. संरचित लॉगिंग
  4. pdb से डीबगिंग
← Python Academy पर वापस जाएँ