Python-logboekregistratie (functienaam, bestandsnaam, regelnummer) met een enkel bestand

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

Ik probeer te leren hoe een applicatie werkt. En hiervoor voeg ik debug-opdrachten in als de eerste regel van de body van elke functie met als doel de naam van de functie te loggen, evenals het regelnummer (in de code) waar ik een bericht naar de loguitvoer stuur. Ten slotte, aangezien deze applicatie uit veel bestanden bestaat, wil ik een enkel logbestand maken zodat ik de controlestroom van de applicatie beter kan begrijpen.

Dit is wat ik weet:

  1. voor het verkrijgen van de functienaam kan ik function_name.__name__ gebruiken, maar ik wil de functienaam niet gebruiken (zodat ik snel een generiek Logboek kan kopiëren en plakken .info("Message") in de hoofdtekst van alle functies). Ik weet dat dit in C kan worden gedaan met behulp van de macro __func__, maar ik ben niet zeker van python.

  2. voor het verkrijgen van de bestandsnaam en het regelnummer, heb ik gezien dat (en ik geloof dat) mijn toepassing de functie Python locals() gebruikt, maar in een syntaxis die ik ben niet helemaal op de hoogte van bijvoorbeeld: options = "LOG.debug("%(flag)s: %(flag_get)s" % locals()) en ik probeerde het met behulp van zoals LOG.info ("Mijn bericht %s" % locals()) wat zoiets produceert als {"self": <__main__.Class_name object op 0x22f8cd0>}. Enige input hierover alstublieft?

  3. Ik weet hoe ik logboekregistratie moet gebruiken en hoe ik er een handler aan moet toevoegen om in een bestand te loggen, maar ik weet niet zeker of een enkel bestand kan worden gebruikt om op te nemen alle logberichten in de juiste volgorde van functieaanroepen in het project.

Ik zou alle hulp zeer op prijs stellen.

Bedankt!