एक फ़ाइल का उपयोग करके पायथन लॉगिंग (फ़ंक्शन का नाम, फ़ाइल का नाम, लाइन नंबर)

| | | | | | | | | | | |

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

मैं जो जानता हूं वह यहां है:

  1. फ़ंक्शन नाम प्राप्त करने के लिए, मैं function_name.__name__ का उपयोग कर सकता हूं लेकिन मैं function_name का उपयोग नहीं करना चाहता (ताकि मैं एक सामान्य लॉग को तेज़ी से कॉपी और पेस्ट कर सकूं .info("Message") सभी कार्यों के मुख्य भाग में। मुझे पता है कि यह C में __func__ मैक्रो का उपयोग करके किया जा सकता है, लेकिन मैं अजगर के बारे में निश्चित नहीं हूं।

  2. फ़ाइल नाम और लाइन नंबर प्राप्त करने के लिए, मैंने देखा है कि (और मुझे विश्वास है कि) मेरा एप्लिकेशन Python locals() फ़ंक्शन का उपयोग कर रहा है, लेकिन एक सिंटैक्स में जो मैं हूं उदाहरण के लिए पूरी तरह से अवगत नहीं: options = "LOG.debug("%(flag)s: %(flag_get)s" % locals()) और मैंने इसे LOG.info ("मेरा संदेश %s" % locals()) जो {"self": <__main__.Class_name ऑब्जेक्ट 0x22f8cd0>} जैसा कुछ उत्पन्न करता है। कृपया इस पर कोई इनपुट दें?

  3. मुझे पता है कि लॉगिंग का उपयोग कैसे करना है और फ़ाइल में लॉग इन करने के लिए इसमें हैंडलर जोड़ना है लेकिन मुझे यकीन नहीं है कि रिकॉर्ड करने के लिए एक फ़ाइल का उपयोग किया जा सकता है या नहीं प्रोजेक्ट में फ़ंक्शन कॉल के सही क्रम में सभी लॉग संदेश।

मैं किसी भी मदद की बहुत सराहना करूंगा।

धन्यवाद!