Próbuję dowiedzieć się, jak działa aplikacja. W tym celu wstawiam polecenia debugowania jako pierwszy wiersz treści każdej funkcji w celu zarejestrowania nazwy funkcji, a także numeru wiersza (w kodzie), w którym wysyłam wiadomość do wyjścia dziennika. Wreszcie, ponieważ ta aplikacja składa się z wielu plików, chcę utworzyć pojedynczy plik dziennika, aby lepiej zrozumieć przepływ sterowania aplikacją.
Oto, co wiem:
aby uzyskać nazwę funkcji, mogę użyć
nazwa_funkcji.__nazwa__
, ale nie chcę używać nazwy_funkcji (aby móc szybko skopiować i wkleić ogólnyDziennik .info("Wiadomość")
w treści wszystkich funkcji).Wiem, że można to zrobić w C za pomocą makra__func__
, ale nie jestem pewien co do Pythona.aby uzyskać nazwę pliku i numer wiersza, widziałem (i wierzę, że) moja aplikacja używa funkcji Pythona
locals()
, ale w składni, którą ja nie do końca świadomy np.:options = "LOG.debug("%(flag)s: %(flag_get)s" % locals())
i próbowałem go używając jakLOG.info („Moja wiadomość %s” % locals())
, która generuje coś takiego jak{"self": <__main__.Class_name obiekt pod adresem 0x22f8cd0>}
. Jakieś dane w tej sprawie proszę?Wiem, jak korzystać z rejestrowania i dodać do niego procedurę obsługi, aby zalogować się do pliku, ale nie jestem pewien, czy pojedynczy plik może być użyty do nagrywania wszystkie komunikaty dziennika we właściwej kolejności wywołań funkcji w projekcie.
Byłbym bardzo wdzięczny za wszelką pomoc.
Dzięki!