Moduł logging
wykorzystuje procedury obsługi dołączone do rejestratorów w celu decydowania, w jaki sposób, gdzie, a nawet czy wiadomości ostatecznie zostaną zapisane lub wyświetlone. Można domyślnie skonfigurować logging
, aby również zapisywać do pliku. Naprawdę powinieneś przeczytać docs, ale jeśli zadzwonisz pod numer logging.basicConfig(filename=log_file_name)
, gdzie log_file_name
jest nazwą pliku, do którego mają być wysyłane wiadomości (pamiętaj, że musisz to zrobić zanim cokolwiek innego w nazwie zostanie w ogóle wywołane), wtedy wszystkie wiadomości są logowane do wszystkich rejestratory (o ile nie nastąpi późniejsza rekonfiguracja później) zostaną tam zapisane. Bądź świadomy, na jakim poziomie jest ustawiony rejestrator; jeśli pamięć jest obsługiwana, info
znajduje się poniżej domyślnego poziomu rejestrowania, więc musisz dodać level=logging.INFO
w argumentach do basicConfig
, a także, aby twoja wiadomość znalazła się w pliku.
Co do drugiej części pytania, logging.getLogger(some_string)
zwraca Logger
obiekt, włożonej do prawidłowej pozycji w hierarchii z rejestratorem korzeni, z których nazwę wartość some_string
. Wywoływany bez argumentów, zwraca główny dziennik. __name__
zwraca nazwę bieżącego modułu, więc logging.getLogger(__name__)
zwraca obiekt Logger
o nazwie ustawionej na nazwę bieżącego modułu. Jest to popularny wzorzec używany z logging
, ponieważ powoduje on, że struktura rejestratora odzwierciedla strukturę modułu kodu, co często sprawia, że komunikaty rejestrowania są bardziej przydatne podczas debugowania.