logging — journalisation d’événements¶
Ce module fournit un sous-ensemble léger du paquet logging standard de Python, adapté à MicroPython. Il prend en charge la journalisation par niveaux via des objets Logger à noms hiérarchiques, un petit ensemble de gestionnaires (StreamHandler, FileHandler), le formatage de style printf via Formatter, ainsi que des fonctions utilitaires au niveau du module équivalentes à celles opérant sur le logger racine.
Le module suit l’API familière de CPython d’assez près pour que des applications simples écrites pour la bibliothèque standard fonctionnent sans modification. Les filtres, le verrouillage multi-processus, le format de fichier de configuration et la plupart des classes de gestionnaires ne sont pas fournis.
Constantes de niveau¶
Fonctions¶
- logging.getLogger(name: str | None = None) Logger¶
Renvoie le
Loggerenregistré sous name, en le créant lors de la première utilisation. Si name estNone, le logger racine est renvoyé. Le premier appel avecname="root"(ou avec name non défini) invoque implicitementbasicConfigpour attacher unStreamHandlerpar défaut écrivant verssys.stderr.
- logging.log(level: int, msg: str, *args) None¶
Journalise un message au niveau level sur le logger racine. Les args sont interpolés dans msg à l’aide du formatage de style printf
%; un unique argument dict est utilisé comme correspondance.
- logging.exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Équivalent à
getLogger().exception(msg, *args, exc_info=exc_info). Journalise le message au niveauERRORet formate en plus la trace de la pile de l’exception active lorsque exc_info est vrai. Si exc_info est lui-même uneBaseException, c’est la trace de cette exception qui est utilisée ; sinonsys.exc_info()est consulté lorsque c’est possible.
- logging.shutdown() None¶
Ferme tous les gestionnaires attachés à tous les loggers connus et oublie les loggers. Enregistré automatiquement via
sys.atexitlorsque ce point d’ancrage est disponible.
- logging.addLevelName(level: int, name: str) None¶
Associe le nom textuel name au niveau numérique level de sorte que
Formatterpuisse le rendre 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¶
Configure le logger racine avec un unique gestionnaire.
Si filename est fourni, un
FileHandlerest créé en utilisant filemode et encoding ; sinon unStreamHandlerécrivant vers stream (par défautsys.stderr) est utilisé.format et datefmt sont transmis à un nouveau
Formatter.level définit à la fois le niveau du gestionnaire et le niveau du logger racine.
Si le logger racine possède déjà des gestionnaires, cette fonction ne fait rien, sauf si force vaut
True, auquel cas les gestionnaires existants sont fermés et remplacés.
Classes¶
- class logging.Logger(name: str, level: int = NOTSET)¶
Un logger nommé. Construisez les loggers via
getLoggerplutôt que directement, afin quegetLoggerpuisse renvoyer la même instance pour un même nom.- handlers: list¶
La liste des instances
Handlerattachées à ce logger. Lorsqu’elle est vide, les messages sont distribués aux gestionnaires du logger racine.
- isEnabledFor(level: int) bool¶
Renvoie
Truesi un message de niveau level serait traité par ce logger.
- getEffectiveLevel() int¶
Renvoie le premier non nul parmi : le niveau de ce logger, le niveau du logger racine ou
WARNING.
- log(level: int, msg: str, *args) None¶
Journalise msg au niveau level. Les args sont interpolés dans msg avec l’opérateur
%; si le premier argument positionnel est un dict, il est utilisé comme correspondance.
- exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Journalise msg au niveau
ERRORet, lorsque exc_info est vrai, ajoute la trace de la pile formatée. Si exc_info est une instance deBaseException, c’est la trace de cette exception qui est rendue ; sinon l’exception active est consultée viasys.exc_info().
- class logging.Handler(level: int = NOTSET)¶
Classe de base de tous les gestionnaires. Les sous-classes implémentent
emit().- close() None¶
Libère les ressources détenues par le gestionnaire. Appelé par
shutdownet parFileHandlerlors de sa fermeture.
- class logging.StreamHandler(stream=None)¶
Gestionnaire qui écrit les enregistrements formatés, suivis de
self.terminator("\n"par défaut), vers stream. stream vaut par défautsys.stderr.- stream¶
L’objet flux de destination.
- class logging.FileHandler(filename: str, mode: str = 'a', encoding: str = 'UTF-8')¶
Sous-classe de
StreamHandlerqui ouvre filename avec les mode et encoding donnés et y écrit les enregistrements formatés. Le fichier sous-jacent est fermé lors de l’appel àclose().
- class logging.Formatter(fmt: str | None = None, datefmt: str | None = None)¶
Rend les instances de
LogRecordsous forme de chaînes.fmt est un modèle de style printf. Les clés reconnues sont
%(name)s,%(message)s,%(msecs)d,%(asctime)set%(levelname)s. Lorsqu’il n’est pas défini, il vaut par défaut"%(levelname)s:%(name)s:%(message)s".datefmt est le modèle
time.strftimeutilisé pour rendre%(asctime)s. Vaut par défaut"%Y-%m-%d %H:%M:%S".- formatTime(datefmt: str, record: LogRecord) str | None¶
Formate
record.ctà l’aide detime.strftimeet de datefmt. RenvoieNonesur les plateformes oùtime.strftimen’est pas disponible.
- format(record: LogRecord) str¶
Rend record. Si le modèle utilise
asctime,formatTime()est invoqué d’abord pour renseignerrecord.asctime.