logging — Ereignisprotokollierung¶
Dieses Modul stellt eine schlanke Teilmenge des Standard-Python-Pakets logging bereit, angepasst für MicroPython. Es unterstützt stufenbasierte Protokollierung über hierarchisch benannte Logger-Objekte, eine kleine Auswahl an Handlern (StreamHandler, FileHandler), Formatierung im printf-Stil über Formatter sowie Komfortfunktionen auf Modulebene, die denen entsprechen, die auf dem Root-Logger arbeiten.
Das Modul orientiert sich so eng an der vertrauten CPython-API, dass einfache Anwendungen, die für die Standardbibliothek geschrieben wurden, unverändert funktionieren sollten. Filter, Mehrprozess-Sperren, das Format der Konfigurationsdatei und die meisten Handler-Klassen werden nicht bereitgestellt.
Stufenkonstanten¶
Funktionen¶
- logging.getLogger(name: str | None = None) Logger¶
Gibt den unter name registrierten
Loggerzurück und erstellt ihn bei der ersten Verwendung. Wenn name gleichNoneist, wird der Root-Logger zurückgegeben. Der erste Aufruf mitname="root"(oder ohne gesetzten name) ruft implizitbasicConfigauf, um einen Standard-StreamHandleranzuhängen, der nachsys.stderrschreibt.
- logging.log(level: int, msg: str, *args) None¶
Protokolliert eine Meldung auf der Stufe level auf dem Root-Logger. args werden mittels printf-artiger
%-Formatierung in msg eingesetzt; ein einzelnes dict-Argument wird als Mapping verwendet.
- logging.exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Entspricht
getLogger().exception(msg, *args, exc_info=exc_info). Protokolliert die Meldung aufERRORund formatiert zusätzlich den Traceback der aktiven Ausnahme, wenn exc_info wahr ist. Wenn exc_info selbst eineBaseExceptionist, wird der Traceback dieser Ausnahme verwendet; andernfalls wirdsys.exc_info()herangezogen, sofern verfügbar.
- logging.shutdown() None¶
Schließt jeden Handler, der an jeden bekannten Logger angehängt ist, und verwirft die Logger. Wird automatisch über
sys.atexitregistriert, wenn dieser Hook verfügbar ist.
- logging.addLevelName(level: int, name: str) None¶
Verknüpft den textuellen name mit der numerischen Stufe level, sodass
Formattersie über%(levelname)sdarstellen kann.
- 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¶
Konfiguriert den Root-Logger mit einem einzelnen Handler.
Wenn filename angegeben ist, wird ein
FileHandlerunter Verwendung von filemode und encoding erstellt; andernfalls wird einStreamHandlerverwendet, der nach stream (standardmäßigsys.stderr) schreibt.format und datefmt werden an einen neuen
Formatterdurchgereicht.level setzt sowohl die Stufe des Handlers als auch die Stufe des Root-Loggers.
Wenn der Root-Logger bereits Handler besitzt, ist diese Funktion ein No-Op, es sei denn, force ist
True; in diesem Fall werden die vorhandenen Handler geschlossen und ersetzt.
Klassen¶
- class logging.Logger(name: str, level: int = NOTSET)¶
Ein benannter Logger. Erstellen Sie Logger über
getLoggerstatt direkt, damitgetLoggerfür denselben Namen dieselbe Instanz zurückgeben kann.- handlers: list¶
Die Liste der
Handler-Instanzen, die an diesen Logger angehängt sind. Wenn sie leer ist, werden Meldungen an die Handler des Root-Loggers weitergeleitet.
- isEnabledFor(level: int) bool¶
Gibt
Truezurück, wenn eine Meldung der Stufe level von diesem Logger verarbeitet würde.
- getEffectiveLevel() int¶
Gibt den ersten von null verschiedenen Wert zurück: die Stufe dieses Loggers, die Stufe des Root-Loggers oder
WARNING.
- log(level: int, msg: str, *args) None¶
Protokolliert msg auf der Stufe level. args werden mit dem
%-Operator in msg eingesetzt; wenn das erste Positionsargument ein dict ist, wird es als Mapping verwendet.
- exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Protokolliert msg auf
ERRORund hängt, wenn exc_info wahr ist, den formatierten Traceback an. Wenn exc_info eineBaseException-Instanz ist, wird der Traceback dieser Ausnahme dargestellt; andernfalls wird die aktive Ausnahme übersys.exc_info()herangezogen.
- class logging.Handler(level: int = NOTSET)¶
Basisklasse für alle Handler. Unterklassen implementieren
emit().- close() None¶
Gibt vom Handler gehaltene Ressourcen frei. Wird von
shutdownund vonFileHandleraufgerufen, wenn dieser geschlossen wird.
- class logging.StreamHandler(stream=None)¶
Handler, der formatierte Einträge, gefolgt von
self.terminator(standardmäßig"\n"), nach stream schreibt. stream ist standardmäßigsys.stderr.- stream¶
Das Ziel-Stream-Objekt.
- terminator: str¶
Zeichenkette, die nach jedem formatierten Eintrag angehängt wird. Standardmäßig
"\n".
- class logging.FileHandler(filename: str, mode: str = 'a', encoding: str = 'UTF-8')¶
StreamHandler-Unterklasse, die filename mit dem angegebenen mode und encoding öffnet und formatierte Einträge dorthin schreibt. Die zugrunde liegende Datei wird beiclose()geschlossen.
- class logging.Formatter(fmt: str | None = None, datefmt: str | None = None)¶
Stellt
LogRecord-Instanzen als Zeichenketten dar.fmt ist eine Vorlage im printf-Stil. Erkannte Schlüssel sind
%(name)s,%(message)s,%(msecs)d,%(asctime)sund%(levelname)s. Ohne Angabe wird standardmäßig"%(levelname)s:%(name)s:%(message)s"verwendet.datefmt ist die
time.strftime-Vorlage, die zur Darstellung von%(asctime)sverwendet wird. Standardmäßig"%Y-%m-%d %H:%M:%S".- formatTime(datefmt: str, record: LogRecord) str | None¶
Formatiert
record.ctmittime.strftimeund datefmt. GibtNonezurück auf Plattformen, auf denentime.strftimenicht verfügbar ist.
- format(record: LogRecord) str¶
Stellt record dar. Wenn die Vorlage
asctimeverwendet, wird zuerstformatTime()aufgerufen, umrecord.asctimezu füllen.