मैं यह जानने की कोशिश कर रहा हूं कि कोई एप्लिकेशन कैसे काम करता है। और इसके लिए मैं फ़ंक्शन के नाम के साथ-साथ लाइन नंबर (कोड के भीतर) पर लॉग करने के लक्ष्य के साथ प्रत्येक फ़ंक्शन के निकाय की पहली पंक्ति के रूप में डिबग कमांड सम्मिलित कर रहा हूं जहां मैं लॉग आउटपुट को संदेश भेजता हूं। अंत में, चूंकि इस एप्लिकेशन में कई फाइलें शामिल हैं, मैं एक सिंगल लॉग फाइल बनाना चाहता हूं ताकि मैं एप्लिकेशन के नियंत्रण प्रवाह को बेहतर ढंग से समझ सकूं।
यहाँ मुझे पता है:
फ़ंक्शन नाम प्राप्त करने के लिए, मैं उपयोग कर सकता हूं,
function_name.__name__लेकिन मैं function_name का उपयोग नहीं करना चाहता (ताकि मैं तेजीLog.info("Message")से सभी कार्यों के शरीर में एक जेनेरिक कॉपी और पेस्ट कर सकूं )। मुझे पता है कि यह__func__मैक्रो का उपयोग करके सी में किया जा सकता है लेकिन मैं अजगर के बारे में निश्चित नहीं हूं।फ़ाइल नाम और लाइन नंबर प्राप्त करने के लिए, मैंने देखा है कि (और मुझे विश्वास है कि) मेरा आवेदन पायथन
locals()फ़ंक्शन का उपयोग कर रहा है, लेकिन एक वाक्यविन्यास में कि मैं उदाहरण के लिए पूरी तरह से अवगत नहींoptions = "LOG.debug('%(flag)s : %(flag_get)s' % locals())हूं : और मैंने इसका उपयोग करने की कोशिश की,LOG.info("My message %s" % locals())जो कुछ ऐसा पैदा करता है{'self': <__main__.Class_name object at 0x22f8cd0>}। कृपया इस पर कोई इनपुट?मुझे पता है कि लॉगिंग का उपयोग कैसे करना है और किसी फाइल में लॉग इन करने के लिए हैंडलर को जोड़ना है, लेकिन मुझे यकीन नहीं है कि प्रोजेक्ट में फ़ंक्शन कॉल के सही क्रम में सभी लॉग संदेशों को रिकॉर्ड करने के लिए एकल फ़ाइल का उपयोग किया जा सकता है।
मै किसी भी सहायता के लिए बहुत आभारी रहूँगा।
धन्यवाद!
import pdb; pdb.set_trace(), और फिर अंतःक्रियात्मक रूप से कोड के माध्यम से कदम बढ़ा सकते हैं। इससे आपको प्रोग्राम फ्लो ट्रेस करने में मदद मिल सकती है।