Python-Protokollierung (Funktionsname, Dateiname, Zeilennummer) unter Verwendung einer einzelnen Datei

Ich versuche zu lernen, wie eine Anwendung funktioniert. Dazu füge ich Debug-Befehle als erste Zeile des Hauptteils jeder Funktion ein, um den Namen der Funktion sowie die Zeilennummer (innerhalb des Codes) zu protokollieren, in der ich eine Nachricht an die Protokollausgabe sende. Da diese Anwendung aus vielen Dateien besteht, möchte ich eine einzelne Protokolldatei erstellen, um den Steuerungsfluss der Anwendung besser zu verstehen.

Folgendes weiß ich:

Zum Abrufen des Funktionsnamens kann ich verwendenfunction_name.__name__ Ich möchte jedoch nicht den Funktionsnamen verwenden (damit ich schnell einen generischen Namen kopieren und einfügen kann)Log.info("Message") im Körper aller Funktionen). Ich weiß, dass dies in C mit getan werden könnte__func__ Makro, aber ich bin nicht sicher über Python.

Ich habe gesehen, dass meine Anwendung Python verwendet, um den Dateinamen und die Zeilennummer zu ermitteln (und das glaube ich auch)locals() Funktion aber in einer Syntax, die mir nicht ganz bewusst ist, z.options = "LOG.debug('%(flag)s : %(flag_get)s' % locals()) und ich habe es mit like versuchtLOG.info("My message %s" % locals()) was sowas erzeugt{'self': <__main__.Class_name object at 0x22f8cd0>}. Irgendwelche Eingaben dazu bitte?

Ich kann die Protokollierung verwenden und einen Handler hinzufügen, um eine Datei zu protokollieren. Ich bin jedoch nicht sicher, ob eine einzelne Datei zum Aufzeichnen aller Protokollmeldungen in der richtigen Reihenfolge der Funktionsaufrufe im Projekt verwendet werden kann.

Ich würde mich über jede Hilfe sehr freuen.

Vielen Dank!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage