logging — event logging

Deze module biedt een lichtgewicht subset van het standaard Python-pakket logging, aangepast voor MicroPython. Het ondersteunt logging met niveaus via hiërarchisch benoemde Logger-objecten, een kleine set handlers (StreamHandler, FileHandler), printf-stijl opmaak via Formatter, en gemaksfuncties op moduleniveau die gelijkwaardig zijn aan die welke op de root-logger werken.

De module volgt de bekende CPython-API nauw genoeg dat eenvoudige toepassingen die voor de standaardbibliotheek zijn geschreven, ongewijzigd zouden moeten werken. Filters, vergrendeling voor meerdere processen, het formaat van het configuratiebestand en de meeste handlerklassen worden niet aangeboden.

Niveauconstanten

logging.CRITICAL: int

Numerieke waarde 50. Gebruikt voor onherstelbare fouten.

logging.ERROR: int

Numerieke waarde 40. Gebruikt voor ernstige problemen.

logging.WARNING: int

Numerieke waarde 30. Standaardniveau voor een vers geconfigureerde root-logger.

logging.INFO: int

Numerieke waarde 20. Gebruikt voor bevestigingsberichten.

logging.DEBUG: int

Numerieke waarde 10. Gebruikt voor fijnmazige diagnostische uitvoer.

logging.NOTSET: int

Numerieke waarde 0. Geeft een logger aan zonder geconfigureerd niveau (het effectieve niveau wordt dan overgenomen van de root-logger of WARNING).

Functies

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

Geef de Logger terug die onder name is geregistreerd, en maak deze aan bij het eerste gebruik. Als name gelijk is aan None wordt de root-logger teruggegeven. De eerste aanroep met name="root" (of met name niet ingesteld) roept impliciet basicConfig aan om een standaard StreamHandler te koppelen die naar sys.stderr schrijft.

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

Log een bericht op level op de root-logger. args worden in msg geïnterpoleerd met printf-stijl %-opmaak; een enkel dict-argument wordt gebruikt als de mapping.

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

Gelijkwaardig aan getLogger().debug(msg, *args).

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

Gelijkwaardig aan getLogger().info(msg, *args).

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

Gelijkwaardig aan getLogger().warning(msg, *args).

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

Gelijkwaardig aan getLogger().error(msg, *args).

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

Gelijkwaardig aan getLogger().critical(msg, *args).

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

Gelijkwaardig aan getLogger().exception(msg, *args, exc_info=exc_info). Logt het bericht op ERROR en formatteert daarnaast de traceback van de actieve uitzondering wanneer exc_info waarheidsgetrouw is. Als exc_info zelf een BaseException is, wordt de traceback van die uitzondering gebruikt; anders wordt sys.exc_info() geraadpleegd indien beschikbaar.

logging.shutdown() None

Sluit elke handler die aan elke bekende logger is gekoppeld en vergeet de loggers. Wordt automatisch geregistreerd via sys.atexit wanneer die hook beschikbaar is.

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

Koppel de tekstuele name aan het numerieke level zodat Formatter deze kan weergeven via %(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

Configureer de root-logger met één enkele handler.

Als filename wordt opgegeven, wordt een FileHandler aangemaakt met behulp van filemode en encoding; anders wordt een StreamHandler gebruikt die naar stream schrijft (standaard sys.stderr).

format en datefmt worden doorgegeven aan een nieuwe Formatter.

level stelt zowel het niveau van de handler als het niveau van de root-logger in.

Als de root-logger al handlers heeft, doet deze functie niets, tenzij force gelijk is aan True, in welk geval de bestaande handlers worden gesloten en vervangen.

Klassen

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

Een benoemde logger. Construeer loggers via getLogger in plaats van rechtstreeks, zodat getLogger dezelfde instantie kan teruggeven voor dezelfde naam.

name: str

De puntgescheiden naam van de logger.

level: int

Het geconfigureerde numerieke niveau. 0 (NOTSET) betekent “overerven”.

handlers: list

De lijst van Handler-instanties die aan deze logger zijn gekoppeld. Wanneer deze leeg is, worden berichten naar de handlers van de root-logger gestuurd.

setLevel(level: int) None

Stel het drempelniveau van de logger in.

isEnabledFor(level: int) bool

Geeft True terug als een bericht van level door deze logger zou worden verwerkt.

getEffectiveLevel() int

Geeft de eerste niet-nul waarde terug van: het niveau van deze logger, het niveau van de root-logger, of WARNING.

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

Log msg op level. args worden in msg geïnterpoleerd met de %-operator; als het eerste positionele argument een dict is, wordt het gebruikt als een mapping.

debug(msg: str, *args) None

Log msg op DEBUG.

info(msg: str, *args) None

Log msg op INFO.

warning(msg: str, *args) None

Log msg op WARNING.

error(msg: str, *args) None

Log msg op ERROR.

critical(msg: str, *args) None

Log msg op CRITICAL.

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

Log msg op ERROR en voeg, wanneer exc_info waarheidsgetrouw is, de geformatteerde traceback toe. Als exc_info een BaseException-instantie is, wordt de traceback van die uitzondering weergegeven; anders wordt de actieve uitzondering geraadpleegd via sys.exc_info().

addHandler(handler: Handler) None

Koppel handler aan deze logger.

hasHandlers() bool

Geeft True terug als er handlers aan deze logger zijn gekoppeld.

class logging.Handler(level: int = NOTSET)

Basisklasse voor alle handlers. Subklassen implementeren emit().

level: int

Het drempelniveau van de handler.

formatter: 'Formatter | None'

De actieve Formatter, of None.

setLevel(level: int) None

Stel het drempelniveau van de handler in.

setFormatter(formatter: Formatter) None

Koppel formatter aan deze handler.

format(record: LogRecord) str

Geef record weer met behulp van de geconfigureerde formatter.

close() None

Geef de bronnen vrij die door de handler worden vastgehouden. Aangeroepen door shutdown en door FileHandler wanneer deze wordt gesloten.

class logging.StreamHandler(stream=None)

Handler die geformatteerde records, gevolgd door self.terminator (standaard "\n"), naar stream schrijft. stream is standaard sys.stderr.

stream

Het doelstream-object.

terminator: str

Tekenreeks die na elk geformatteerd record wordt toegevoegd. Standaard "\n".

emit(record: LogRecord) None

Schrijf record naar stream als het niveau de drempel van de handler haalt.

close() None

Leeg de onderliggende stream wanneer deze een flush-methode beschikbaar stelt.

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

Subklasse van StreamHandler die filename opent met de opgegeven mode en encoding en er geformatteerde records naartoe schrijft. Het onderliggende bestand wordt gesloten bij close().

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

Geeft LogRecord-instanties weer als tekenreeksen.

fmt is een printf-stijl sjabloon. Herkende sleutels zijn %(name)s, %(message)s, %(msecs)d, %(asctime)s en %(levelname)s. Indien niet ingesteld is de standaard "%(levelname)s:%(name)s:%(message)s".

datefmt is het time.strftime-sjabloon dat wordt gebruikt om %(asctime)s weer te geven. Standaard "%Y-%m-%d %H:%M:%S".

usesTime() bool

Geeft True terug als het opmaaksjabloon verwijst naar asctime.

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

Formatteer record.ct met behulp van time.strftime en datefmt. Geeft None terug op platforms waar time.strftime niet beschikbaar is.

format(record: LogRecord) str

Geef record weer. Als het sjabloon asctime gebruikt, wordt formatTime() eerst aangeroepen om record.asctime te vullen.

class logging.LogRecord

Container voor de gegevens die van een Logger aan zijn handlers worden doorgegeven. Instanties worden gevuld via set(); logger-implementaties hergebruiken een enkel record per logger om allocaties te verminderen.

name: str

De naam van de oorspronkelijke logger.

levelno: int

Numeriek niveau van dit record.

levelname: str

Tekstuele niveaunaam.

message: str

Het volledig geformatteerde logbericht.

ct: float

Aanmaaktijd zoals teruggegeven door time.time().

msecs: int

Milliseconde-component van ct.

asctime: str | None

Voor mensen leesbare tijdstempel; wordt lui gevuld door Formatter.

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

Initialiseer het record met de opgegeven waarden en leg de huidige tijd vast.