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.