मैं यह जानने की कोशिश कर रहा हूं कि कोई एप्लिकेशन कैसे काम करता है। और इसके लिए मैं प्रत्येक कार्य के शरीर की पहली पंक्ति के रूप में डीबग कमांड को फ़ंक्शन के नाम के साथ-साथ लाइन नंबर (कोड के भीतर) लॉगिंग के लक्ष्य के साथ जोड़ रहा हूं जहां मैं लॉग आउटपुट में एक संदेश भेजता हूं। अंत में, चूंकि इस एप्लिकेशन में कई फाइलें शामिल हैं, इसलिए मैं एक एकल लॉग फ़ाइल बनाना चाहता हूं ताकि मैं एप्लिकेशन के नियंत्रण प्रवाह को बेहतर ढंग से समझ सकूं।पायथन लॉगिंग (फ़ंक्शन का नाम, फ़ाइल का नाम, लाइन नंबर) एक फ़ाइल का उपयोग करके
समारोह नाम प्राप्त करने के लिए, मैं
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>}
जैसे कुछ उत्पन्न करता है। इस पर कोई इनपुट कृपया?मुझे पता है कि लॉगिंग का उपयोग कैसे करें और फ़ाइल में लॉग इन करने के लिए हैंडलर जोड़ें, लेकिन मुझे यकीन नहीं है कि परियोजना में फ़ंक्शन कॉल के सही क्रम में सभी लॉग संदेशों को रिकॉर्ड करने के लिए एक फ़ाइल का उपयोग किया जा सकता है या नहीं।
मैं किसी भी मदद की सराहना करता हूं।
धन्यवाद!
आप 'आयात पीडीबी का उपयोग करके अजगर डीबगर में जा सकते हैं; pdb.set_trace() ', और उसके बाद कोड के माध्यम से अंतःक्रियात्मक कदम। इससे आपको प्रोग्राम प्रवाह का पता लगाने में मदद मिल सकती है। –
महान विचार! धन्यवाद मैट। प्रश्न में उल्लिखित लॉग प्राप्त करना अभी भी सहायक होगा ताकि मुझे हर बार डीबग करने की आवश्यकता न हो। साथ ही, क्या आप पाइथन के लिए एक आईडीई के बारे में जानते हैं जो जावा के लिए एक्लिप्स के रूप में अच्छा है (ctrl + क्लिक आपको फ़ंक्शन परिभाषा में ले जाता है) कि मैं डिबगिंग को आसान बनाने के लिए उपयोग कर सकता हूं? – user1126425