आप डिफ़ॉल्ट हैंडलर को हटा दें और इस तरह प्रवेश करने पुनः कॉन्फ़िगर कर सकते "रूट" लॉगर - अगर आप लॉगिंग से पहले कॉल करते हैं, कहते हैं, logging.info() को कॉल करते हैं, तो इसका उपयोग किया जाता है। basicConfig (level = logging.DEBUG) - में चेतावनी का डिफ़ॉल्ट लॉगिंग स्तर है।
यही कारण है कि logging.info() और logging.debug() कुछ भी नहीं करते हैं: क्योंकि आपने उन्हें पर कॉन्फ़िगर नहीं किया है ... um ... उन्हें कॉन्फ़िगर नहीं कर रहा है।
संभावित रूप से संबंधित (यह मुझे थोड़ा सा): जब मूल कॉन्फिग को कॉल नहीं किया जाता है, तो मुझे अपने डीबग संदेश नहीं मिलते थे, भले ही मैंने अपने हैंडलर को DEBUG स्तर पर सेट किया हो। बालों को खींचने के बाद, मैंने पाया कि आपको कस्टम लॉगर का स्तर DEBUG होने के लिए भी सेट करना होगा। यदि आपका लॉगर चेतावनी पर सेट है, तो एक हैंडलर को DEBUG (स्वयं द्वारा) पर सेट करने से आपको logger.info() और logger.debug() पर कोई आउटपुट नहीं मिलेगा।
स्रोत
2010-04-06 20:28:07
वर्बैटिम का उपयोग करने के लिए। यदि आप मुझे पसंद करते हैं- इस तरह के तत्काल लॉगर का पुन: उपयोग करने का प्रयास किया गया: 'logger = logging.getLogger (__ name __) 'और' logger.handlers 'में लूप करने का प्रयास करें, यह काम नहीं करेगा। –
"root rootanders:" क्या है? एक खाली अनुक्रम को बदलने से कोई प्रभाव नहीं पड़ता है। क्या यह संभव है कि root.handlers कुछ अन्य, गैर-अनुक्रम झूठा मान है? (यह मेरे सिस्टम पर नहीं है) – Sebastian
AWS Lambdas के साथ लॉगिंग समस्या डीबग करने के लिए आसान है। ऐसा लगता है कि वे लैम्ब्डा बूटस्ट्रैपिंग के दौरान 'लैम्ब्डा लॉजिंग हैंडलर' नाम के साथ कुछ हैंडलर स्थापित करते हैं। स्थापित हैंडलर को हटाने से समस्या हल हो गई। –