Logowanie Pythona (nazwa funkcji, nazwa pliku, numer linii) przy użyciu jednego pliku

Próbuję dowiedzieć się, jak działa aplikacja. W tym celu wstawiam komendy debugowania jako pierwszą linię ciała każdej funkcji, aby rejestrować nazwę funkcji oraz numer linii (w kodzie), gdzie wysyłam wiadomość do wyjścia dziennika. Wreszcie, ponieważ ta aplikacja składa się z wielu plików, chcę utworzyć pojedynczy plik dziennika, dzięki czemu mogę lepiej zrozumieć przepływ sterowania aplikacji.

Oto co wiem:

aby uzyskać nazwę funkcji, mogę użyćfunction_name.__name__ ale nie chcę używać nazwy funkcji (aby móc szybko skopiować i wkleić nazwę ogólną)Log.info("Message") w treści wszystkich funkcji). Wiem, że można to zrobić za pomocą C__func__ makro, ale nie jestem pewien co do Pythona.

aby uzyskać nazwę pliku i numer linii, widziałem, że (i wierzę, że) moja aplikacja używa Pythonalocals() funkcja, ale w składni, której nie jestem w pełni świadomy, np .:options = "LOG.debug('%(flag)s : %(flag_get)s' % locals()) i spróbowałem tego użyćLOG.info("My message %s" % locals()) co daje coś takiego{'self': <__main__.Class_name object at 0x22f8cd0>}. Jakieś informacje na ten temat?

Wiem, jak korzystać z rejestrowania i dodawać do niego program obsługi, aby zalogować się do pliku, ale nie jestem pewien, czy pojedynczy plik może być użyty do rejestrowania wszystkich komunikatów dziennika we właściwej kolejności wywołań funkcji w projekcie.

Byłbym bardzo wdzięczny za każdą pomoc.

Dzięki!

questionAnswers(3)

yourAnswerToTheQuestion