logging — eseménynaplózás

Ez a modul a szabványos Python logging csomag MicroPythonhoz igazított, könnyűsúlyú részhalmazát biztosítja. Támogatja a szintekre bontott naplózást hierarchikusan elnevezett Logger objektumokon keresztül, egy kis kezelőkészletet (StreamHandler, FileHandler), a printf-stílusú formázást a Formatter révén, valamint modulszintű kényelmi függvényeket, amelyek megfelelnek a gyökérnaplózón működő társaiknak.

A modul elég szorosan követi az ismerős CPython API-t ahhoz, hogy a szabványos könyvtárra írt egyszerű alkalmazások változtatás nélkül működjenek. A szűrők, a több folyamatra kiterjedő zárolás, a konfigurációsfájl-formátum és a legtöbb kezelőosztály nem érhető el.

Szintkonstansok

logging.CRITICAL: int

Numerikus érték: 50. Helyrehozhatatlan hibákhoz használatos.

logging.ERROR: int

Numerikus érték: 40. Súlyos problémákhoz használatos.

logging.WARNING: int

Numerikus érték: 30. Az újonnan beállított gyökérnaplózó alapértelmezett szintje.

logging.INFO: int

Numerikus érték: 20. Megerősítő üzenetekhez használatos.

logging.DEBUG: int

Numerikus érték: 10. Finom felbontású diagnosztikai kimenethez használatos.

logging.NOTSET: int

Numerikus érték: 0. Olyan naplózót jelez, amelyhez nincs szint beállítva (a tényleges szintet ekkor a gyökérnaplózótól vagy a WARNING szinttől örökli).

Függvények

logging.getLogger(name: str | None = None) Logger

Visszaadja a name alatt regisztrált Logger objektumot, az első használatkor létrehozva azt. Ha a name értéke None, a gyökérnaplózót adja vissza. Az első name="root" (vagy name megadása nélküli) hívás implicit módon meghívja a basicConfig függvényt, hogy egy alapértelmezett, a sys.stderr kimenetre író StreamHandler kezelőt csatoljon.

logging.log(level: int, msg: str, *args) None

Egy üzenet naplózása level szinten a gyökérnaplózón. Az args argumentumok printf-stílusú % formázással kerülnek be a msg üzenetbe; egyetlen dict argumentumot a leképezésként használ.

logging.debug(msg: str, *args) None

Egyenértékű a getLogger().debug(msg, *args) hívással.

logging.info(msg: str, *args) None

Egyenértékű a getLogger().info(msg, *args) hívással.

logging.warning(msg: str, *args) None

Egyenértékű a getLogger().warning(msg, *args) hívással.

logging.error(msg: str, *args) None

Egyenértékű a getLogger().error(msg, *args) hívással.

logging.critical(msg: str, *args) None

Egyenértékű a getLogger().critical(msg, *args) hívással.

logging.exception(msg: str, *args, exc_info: bool | BaseException = True) None

Egyenértékű a getLogger().exception(msg, *args, exc_info=exc_info) hívással. Az üzenetet ERROR szinten naplózza, és emellett formázza az aktív kivétel veremkövetését, ha az exc_info igaz értékű. Ha az exc_info maga egy BaseException, akkor annak a kivételnek a veremkövetése kerül felhasználásra; ellenkező esetben a sys.exc_info() kerül lekérdezésre, ha elérhető.

logging.shutdown() None

Lezárja az összes ismert naplózóhoz csatolt minden kezelőt, és elfelejti a naplózókat. Automatikusan regisztrálva a sys.atexit révén, ha az a horog elérhető.

logging.addLevelName(level: int, name: str) None

A szöveges name nevet a numerikus level szinthez társítja, hogy a Formatter a %(levelname)s segítségével meg tudja jeleníteni.

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

A gyökérnaplózó beállítása egyetlen kezelővel.

Ha a filename meg van adva, egy FileHandler jön létre a filemode és az encoding használatával; ellenkező esetben egy a stream kimenetre író StreamHandler (alapértelmezetten sys.stderr) kerül felhasználásra.

A format és a datefmt átadásra kerül egy új Formatter objektumnak.

A level beállítja mind a kezelő szintjét, mind a gyökérnaplózó szintjét.

Ha a gyökérnaplózónak már vannak kezelői, ez a függvény nem csinál semmit, hacsak a force értéke nem True, amely esetben a meglévő kezelők lezárásra és lecserélésre kerülnek.

Osztályok

class logging.Logger(name: str, level: int = NOTSET)

Egy elnevezett naplózó. A naplózókat a getLogger segítségével hozd létre, ne közvetlenül, hogy a getLogger ugyanazon név esetén ugyanazt a példányt tudja visszaadni.

name: str

A naplózó pontokkal tagolt neve.

level: int

A beállított numerikus szint. A 0 (NOTSET) jelentése „öröklés”.

handlers: list

Az ehhez a naplózóhoz csatolt Handler példányok listája. Ha üres, az üzenetek a gyökérnaplózó kezelőihez kerülnek továbbításra.

setLevel(level: int) None

Beállítja a naplózó küszöbszintjét.

isEnabledFor(level: int) bool

Visszaadja a True értéket, ha egy level szintű üzenetet ez a naplózó feldolgozna.

getEffectiveLevel() int

Az alábbiak közül az első nem nulla értéket adja vissza: ennek a naplózónak a szintje, a gyökérnaplózó szintje, vagy a WARNING.

log(level: int, msg: str, *args) None

A msg naplózása level szinten. Az args argumentumok a % operátorral kerülnek be a msg üzenetbe; ha az első pozicionális argumentum egy dict, akkor azt leképezésként használja.

debug(msg: str, *args) None

A msg naplózása DEBUG szinten.

info(msg: str, *args) None

A msg naplózása INFO szinten.

warning(msg: str, *args) None

A msg naplózása WARNING szinten.

error(msg: str, *args) None

A msg naplózása ERROR szinten.

critical(msg: str, *args) None

A msg naplózása CRITICAL szinten.

exception(msg: str, *args, exc_info: bool | BaseException = True) None

A msg naplózása ERROR szinten, és ha az exc_info igaz értékű, hozzáfűzi a formázott veremkövetést. Ha az exc_info egy BaseException példány, annak a kivételnek a veremkövetése jelenik meg; ellenkező esetben az aktív kivétel kerül lekérdezésre a sys.exc_info() révén.

addHandler(handler: Handler) None

A handler csatolása ehhez a naplózóhoz.

hasHandlers() bool

Visszaadja a True értéket, ha bármilyen kezelő van csatolva ehhez a naplózóhoz.

class logging.Handler(level: int = NOTSET)

Az összes kezelő alaposztálya. Az alosztályok implementálják az emit() metódust.

level: int

A kezelő küszöbszintje.

formatter: 'Formatter | None'

Az aktív Formatter, vagy None.

setLevel(level: int) None

Beállítja a kezelő küszöbszintjét.

setFormatter(formatter: Formatter) None

A formatter csatolása ehhez a kezelőhöz.

format(record: LogRecord) str

A record megjelenítése a beállított formázóval.

close() None

Felszabadítja a kezelő által tartott erőforrásokat. A shutdown hívja meg, valamint a FileHandler is, amikor az lezárásra kerül.

class logging.StreamHandler(stream=None)

Olyan kezelő, amely a formázott rekordokat, majd azt követően a self.terminator értéket (alapértelmezetten "\n") írja a stream kimenetre. A stream alapértelmezett értéke sys.stderr.

stream

A cél stream objektum.

terminator: str

Minden formázott rekord után hozzáfűzött karakterlánc. Alapértelmezett értéke "\n".

emit(record: LogRecord) None

A record kiírása az stream kimenetre, ha annak szintje eléri a kezelő küszöbértékét.

close() None

Kiüríti az alapul szolgáló streamet, ha az rendelkezik flush metódussal.

class logging.FileHandler(filename: str, mode: str = 'a', encoding: str = 'UTF-8')

A StreamHandler alosztálya, amely a filename fájlt megnyitja a megadott mode és encoding értékekkel, és a formázott rekordokat oda írja. Az alapul szolgáló fájl a close() hívásakor zárul be.

class logging.Formatter(fmt: str | None = None, datefmt: str | None = None)

A LogRecord példányokat karakterláncokká alakítja.

Az fmt egy printf-stílusú sablon. A felismert kulcsok: %(name)s, %(message)s, %(msecs)d, %(asctime)s és %(levelname)s. Ha nincs beállítva, alapértelmezett értéke "%(levelname)s:%(name)s:%(message)s".

A datefmt a %(asctime)s megjelenítéséhez használt time.strftime sablon. Alapértelmezett értéke "%Y-%m-%d %H:%M:%S".

usesTime() bool

Visszaadja a True értéket, ha a formátumsablon hivatkozik az asctime kulcsra.

formatTime(datefmt: str, record: LogRecord) str | None

A record.ct formázása a time.strftime és a datefmt használatával. Azokon a platformokon, ahol a time.strftime nem érhető el, None értéket ad vissza.

format(record: LogRecord) str

A record megjelenítése. Ha a sablon az asctime kulcsot használja, először az formatTime() kerül meghívásra a record.asctime kitöltéséhez.

class logging.LogRecord

Tároló a Logger által a kezelőinek átadott adatok számára. A példányok az set() metóduson keresztül töltődnek fel; a naplózó implementációk naplózónként egyetlen rekordot használnak újra a memóriafoglalások csökkentése érdekében.

name: str

A kibocsátó naplózó neve.

levelno: int

Ennek a rekordnak a numerikus szintje.

levelname: str

A szöveges szintnév.

message: str

A teljesen formázott naplóüzenet.

ct: float

A létrehozás ideje a time.time() által visszaadott formában.

msecs: int

A ct ezredmásodperces összetevője.

asctime: str | None

Ember által olvasható időbélyeg; lustán, a Formatter által kerül kitöltésre.

set(name: str, level: int, message: str) None

Inicializálja a rekordot a megadott értékekkel, és rögzíti az aktuális időt.