ฉันพยายามเรียนรู้วิธีการทำงานของแอปพลิเคชัน และสำหรับสิ่งนี้ฉันกำลังแทรกคำสั่งดีบักเป็นบรรทัดแรกของเนื้อหาของแต่ละฟังก์ชันโดยมีเป้าหมายในการบันทึกชื่อของฟังก์ชันตลอดจนหมายเลขบรรทัด (ภายในรหัส) ที่ฉันส่งข้อความไปยังเอาต์พุตบันทึก ในที่สุดเนื่องจากแอปพลิเคชันนี้ประกอบด้วยไฟล์จำนวนมากฉันจึงต้องการสร้างไฟล์บันทึกไฟล์เดียวเพื่อให้เข้าใจขั้นตอนการควบคุมของแอปพลิเคชันได้ดีขึ้น
นี่คือสิ่งที่ฉันรู้:
สำหรับการรับชื่อฟังก์ชันฉันสามารถใช้ได้
function_name.__name__
แต่ฉันไม่ต้องการใช้ function_name (เพื่อให้ฉันสามารถคัดลอกและวางข้อมูลทั่วไปLog.info("Message")
ในเนื้อความของฟังก์ชันทั้งหมดได้อย่างรวดเร็ว) ฉันรู้ว่าสิ่งนี้สามารถทำได้ใน C โดยใช้__func__
มาโคร แต่ฉันไม่แน่ใจเกี่ยวกับ pythonสำหรับการรับชื่อไฟล์และหมายเลขบรรทัดผมได้เห็นว่า (และผมเชื่อว่า) ใบสมัครของฉันคือการใช้ Python
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()
จากนั้นทำตามขั้นตอนผ่านโค้ดแบบโต้ตอบ ซึ่งอาจช่วยคุณติดตามโฟลว์โปรแกรม