Niestandardowa klasa rejestratora i poprawny numer linii / nazwa funkcji w dzienniku

Chciałbym zawinąć program rejestrujący Python do niestandardowej klasy, aby osadzić niektóre funkcje specyficzne dla aplikacji i ukryć szczegóły konfiguracji przed programistami (ustawienie wyjścia pliku, poziomu rejestrowania itp.). Aby to zrobić, utworzyłem klasę z następującym interfejsem API:

__init__(log_level, filename)
debug(msg)
info(msg)
warning(msg)
error(msg)

Wywołania Logger.debug / info / warning / etc zazwyczaj zapisują w dzienniku funkcję i numer linii, w której wykonano połączenie. Jednak używając mojej niestandardowej klasy, funkcje i numery linii zapisane w pliku dziennika są zawsze takie same (odpowiadające funkcjom debug () / info () / warning () / error () wewnątrz klasy niestandardowej). Chcę, aby zapisał wiersz kodu aplikacji, który zarejestrował wiadomość. Czy to jest możliwe?

Z góry dziękuję.

questionAnswers(4)

yourAnswerToTheQuestion