लकड़हारा का कार्यान्वयन पहले से ही एक सिंगलटन है।
Logging.getLogger ('someLogger') के लिए एकाधिक कॉल उसी लकड़हारे ऑब्जेक्ट के लिए एक संदर्भ लौटाते हैं। यह न केवल एक ही मॉड्यूल के भीतर, बल्कि पूरे मॉड्यूल में भी सही है क्योंकि यह एक ही पायथन इंटरप्रिटर प्रक्रिया में है। यह उसी वस्तु के संदर्भ के लिए सही है; इसके अतिरिक्त, एप्लिकेशन कोड एक मॉड्यूल में एक माता-पिता लकड़हारे को परिभाषित और कॉन्फ़िगर कर सकता है और एक अलग मॉड्यूल में एक बच्चा लकड़हारा बना सकता है (लेकिन कॉन्फ़िगर नहीं कर सकता है), और बच्चे के लिए सभी लकड़हारा कॉल माता-पिता को पारित करेंगे। यहाँ एक मुख्य मॉड्यूल है
स्रोत- कई मॉड्यूल में लॉगिंग का उपयोग करना
तो जिस तरह से आपको इसका उपयोग करना चाहिए वह है -
मान लें कि हमने मुख्य मॉड्यूल में 'main_logger' नामक एक लकड़हारा बनाया और कॉन्फ़िगर किया है (जो केवल लकड़हारा कॉन्फ़िगर करता है, कुछ भी वापस नहीं करता है)।
# get the logger instance
logger = logging.getLogger("main_logger")
# configuration follows
...
अब एक उप-मॉड्यूल में, यदि हम नामकरण पदानुक्रम 'main_logger.sub_module_logger' के नाम से एक बाल लकड़हारा बनाते हैं, तो हमें इसे उप-मॉड्यूल में कॉन्फ़िगर करने की आवश्यकता नहीं है। नामकरण पदानुक्रम के बाद केवल लकड़हारा का निर्माण पर्याप्त है।
# get the logger instance
logger = logging.getLogger("main_logger.sub_module_logger")
# no configuration needed
# it inherits the configuration from the parent logger
...
और यह डुप्लीकेट हैंडलर भी नहीं जोड़ेगा।
थोड़ा और अधिक जवाब देने के लिए इस प्रश्न को देखें ।