logging — rejestrowanie zdarzeń¶
Ten moduł udostępnia lekki podzbiór standardowego pakietu logging z Pythona, dostosowany do MicroPython. Obsługuje rejestrowanie z poziomami za pośrednictwem hierarchicznie nazwanych obiektów Logger, niewielki zestaw procedur obsługi (StreamHandler, FileHandler), formatowanie w stylu printf przez Formatter oraz funkcje pomocnicze na poziomie modułu odpowiadające tym operującym na głównym loggerze.
Moduł na tyle wiernie odwzorowuje znane API z CPython, że proste aplikacje napisane dla biblioteki standardowej powinny działać bez zmian. Filtry, blokowanie wielu procesów, format pliku konfiguracyjnego oraz większość klas procedur obsługi nie są dostępne.
Stałe poziomów¶
Funkcje¶
- logging.getLogger(name: str | None = None) Logger¶
Zwraca
Loggerzarejestrowany pod nazwą name, tworząc go przy pierwszym użyciu. Jeśli name ma wartośćNone, zwracany jest główny logger. Pierwsze wywołanie zname="root"(lub z nieustawionym name) niejawnie wywołujebasicConfig, aby dołączyć domyślnyStreamHandlerzapisujący dosys.stderr.
- logging.log(level: int, msg: str, *args) None¶
Rejestruje komunikat na poziomie level w głównym loggerze. args są wstawiane do msg przy użyciu formatowania
%w stylu printf; pojedynczy argument typu słownik jest używany jako mapowanie.
- logging.exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Równoważne
getLogger().exception(msg, *args, exc_info=exc_info). Rejestruje komunikat na poziomieERRORi dodatkowo formatuje ślad stosu aktywnego wyjątku, gdy exc_info jest prawdziwe. Jeśli samo exc_info jest typuBaseException, używany jest ślad stosu tego wyjątku; w przeciwnym razie, gdy jest dostępne, sprawdzane jestsys.exc_info().
- logging.shutdown() None¶
Zamyka każdą procedurę obsługi dołączoną do każdego znanego loggera i zapomina o loggerach. Rejestrowane automatycznie przez
sys.atexit, gdy ten haczyk jest dostępny.
- logging.addLevelName(level: int, name: str) None¶
Wiąże nazwę tekstową name z poziomem liczbowym level, tak aby
Formattermógł ją wyrenderować za pomocą%(levelname)s.
- logging.basicConfig(filename: str | None = None, filemode: str = 'a', format: str | None = None, datefmt: str | None = None, level: int = WARNING, stream=None, encoding: str = 'UTF-8', force: bool = False) None¶
Konfiguruje główny logger z pojedynczą procedurą obsługi.
Jeśli podano filename, tworzony jest
FileHandlerprzy użyciu filemode i encoding; w przeciwnym razie używany jestStreamHandlerzapisujący do stream (domyślniesys.stderr).format i datefmt są przekazywane do nowego
Formatter.level ustawia zarówno poziom procedury obsługi, jak i poziom głównego loggera.
Jeśli główny logger ma już procedury obsługi, ta funkcja nie wykonuje żadnych działań, chyba że force ma wartość
True— wtedy istniejące procedury obsługi są zamykane i zastępowane.
Klasy¶
- class logging.Logger(name: str, level: int = NOTSET)¶
Nazwany logger. Loggery należy tworzyć za pośrednictwem
getLogger, a nie bezpośrednio, abygetLoggermógł zwracać tę samą instancję dla tej samej nazwy.- handlers: list¶
Lista instancji
Handlerdołączonych do tego loggera. Gdy jest pusta, komunikaty są kierowane do procedur obsługi głównego loggera.
- isEnabledFor(level: int) bool¶
Zwraca
True, jeśli komunikat o poziomie level zostałby przetworzony przez ten logger.
- getEffectiveLevel() int¶
Zwraca pierwszą niezerową wartość spośród: poziomu tego loggera, poziomu głównego loggera lub
WARNING.
- log(level: int, msg: str, *args) None¶
Rejestruje msg na poziomie level. args są wstawiane do msg za pomocą operatora
%; jeśli pierwszy argument pozycyjny jest słownikiem, jest on używany jako mapowanie.
- exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Rejestruje msg na poziomie
ERRORi, gdy exc_info jest prawdziwe, dołącza sformatowany ślad stosu. Jeśli exc_info jest instancjąBaseException, renderowany jest ślad stosu tego wyjątku; w przeciwnym razie aktywny wyjątek jest sprawdzany przezsys.exc_info().
- class logging.Handler(level: int = NOTSET)¶
Klasa bazowa dla wszystkich procedur obsługi. Podklasy implementują
emit().- close() None¶
Zwalnia zasoby przechowywane przez procedurę obsługi. Wywoływane przez
shutdownoraz przezFileHandlerprzy jego zamykaniu.
- class logging.StreamHandler(stream=None)¶
Procedura obsługi, która zapisuje sformatowane rekordy, zakończone
self.terminator(domyślnie"\n"), do stream. stream domyślnie przyjmuje wartośćsys.stderr.- stream¶
Docelowy obiekt strumienia.
- class logging.FileHandler(filename: str, mode: str = 'a', encoding: str = 'UTF-8')¶
Podklasa
StreamHandler, która otwiera filename z podanymi mode i encoding oraz zapisuje do niego sformatowane rekordy. Bazowy plik jest zamykany przyclose().
- class logging.Formatter(fmt: str | None = None, datefmt: str | None = None)¶
Renderuje instancje
LogRecorddo ciągów znaków.fmt to szablon w stylu printf. Rozpoznawane klucze to
%(name)s,%(message)s,%(msecs)d,%(asctime)soraz%(levelname)s. Gdy nie jest ustawiony, przyjmuje domyślną wartość"%(levelname)s:%(name)s:%(message)s".datefmt to szablon
time.strftimeużywany do renderowania%(asctime)s. Domyślnie"%Y-%m-%d %H:%M:%S".- formatTime(datefmt: str, record: LogRecord) str | None¶
Formatuje
record.ctprzy użyciutime.strftimei datefmt. ZwracaNonena platformach, gdzietime.strftimejest niedostępne.
- format(record: LogRecord) str¶
Renderuje record. Jeśli szablon używa
asctime, najpierw wywoływane jestformatTime(), aby wypełnićrecord.asctime.