Próbuję się dowiedzieć, 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 w aplikacji.
Oto co wiem:
aby uzyskać nazwę funkcji, mogę użyć,
function_name.__name__ale nie chcę używać funkcji nazwa_funkcji (aby móc szybko skopiować i wkleić rodzaj ogólnyLog.info("Message")w treści wszystkich funkcji). Wiem, że można to zrobić w C przy użyciu__func__makra, ale nie jestem pewien co do Pythona.aby uzyskać nazwę pliku i numer linii, widziałem, że (i uważam, że) moja aplikacja używa
locals()funkcji Pythona, ale w składni, której nie jestem do końca świadomy, np.:options = "LOG.debug('%(flag)s : %(flag_get)s' % locals())i próbowałem użyćLOG.info("My message %s" % locals())czegoś podobnego, który daje coś podobnego{'self': <__main__.Class_name object at 0x22f8cd0>}. Jakieś uwagi w tej sprawie?Wiem, jak używać rejestrowania i dodawać do niego program obsługi, aby logować się do pliku, ale nie jestem pewien, czy pojedynczy plik może być użyty do zapisania 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!
import pdb; pdb.set_trace()przejść do debugera języka Python za pomocą , a następnie interaktywnie przechodzić przez kod. Może to pomóc w śledzeniu przepływu programu.