logging — registro de eventos¶
Este módulo proporciona un subconjunto ligero del paquete estándar de Python logging adaptado a MicroPython. Admite el registro por niveles a través de objetos Logger con nombres jerárquicos, un pequeño conjunto de manejadores (StreamHandler, FileHandler), formato al estilo printf mediante Formatter y funciones de conveniencia a nivel de módulo equivalentes a las que operan sobre el logger raíz.
El módulo sigue la conocida API de CPython lo bastante de cerca como para que las aplicaciones sencillas escritas para la biblioteca estándar funcionen sin cambios. No se proporcionan los filtros, el bloqueo entre múltiples procesos, el formato de archivo de configuración ni la mayoría de las clases de manejadores.
Constantes de nivel¶
Funciones¶
- logging.getLogger(name: str | None = None) Logger¶
Devuelve el
Loggerregistrado bajo name, creándolo en el primer uso. Si name esNonese devuelve el logger raíz. La primera llamada conname="root"(o con name sin establecer) invoca implícitamentebasicConfigpara adjuntar unStreamHandlerpredeterminado que escribe ensys.stderr.
- logging.log(level: int, msg: str, *args) None¶
Registra un mensaje en level sobre el logger raíz. Los args se interpolan en msg usando formato al estilo printf con
%; un único argumento de tipo dict se usa como mapeo.
- logging.exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Equivalente a
getLogger().exception(msg, *args, exc_info=exc_info). Registra el mensaje enERRORy, además, formatea el rastreo (traceback) de la excepción activa cuando exc_info es verdadero. Si exc_info es en sí unaBaseException, se utiliza el rastreo de esa excepción; en caso contrario se consultasys.exc_info()cuando está disponible.
- logging.shutdown() None¶
Cierra todos los manejadores adjuntos a todos los loggers conocidos y olvida los loggers. Se registra automáticamente mediante
sys.atexitcuando ese gancho está disponible.
- logging.addLevelName(level: int, name: str) None¶
Asocia el nombre textual name con el nivel numérico level para que
Formatterpueda mostrarlo mediante%(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¶
Configura el logger raíz con un único manejador.
Si se proporciona filename se crea un
FileHandlerusando filemode y encoding; de lo contrario se usa unStreamHandlerque escribe en stream (con valor predeterminadosys.stderr).format y datefmt se pasan a un nuevo
Formatter.level establece tanto el nivel del manejador como el nivel del logger raíz.
Si el logger raíz ya tiene manejadores, esta función no hace nada a menos que force sea
True, en cuyo caso los manejadores existentes se cierran y se reemplazan.
Clases¶
- class logging.Logger(name: str, level: int = NOTSET)¶
Un logger con nombre. Construya los loggers mediante
getLoggeren lugar de directamente, de modo quegetLoggerpueda devolver la misma instancia para el mismo nombre.- handlers: list¶
La lista de instancias de
Handleradjuntas a este logger. Cuando está vacía, los mensajes se despachan a los manejadores del logger raíz.
- isEnabledFor(level: int) bool¶
Devuelve
Truesi un mensaje de level sería procesado por este logger.
- getEffectiveLevel() int¶
Devuelve el primero distinto de cero de: el nivel de este logger, el nivel del logger raíz o
WARNING.
- log(level: int, msg: str, *args) None¶
Registra msg en level. Los args se interpolan en msg con el operador
%; si el primer argumento posicional es un dict, se usa como mapeo.
- exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Registra msg en
ERRORy, cuando exc_info es verdadero, añade el rastreo formateado. Si exc_info es una instancia deBaseException, se muestra el rastreo de esa excepción; en caso contrario se consulta la excepción activa mediantesys.exc_info().
- class logging.Handler(level: int = NOTSET)¶
Clase base para todos los manejadores. Las subclases implementan
emit().- close() None¶
Libera los recursos retenidos por el manejador. Lo llaman
shutdownyFileHandlercuando se cierra.
- class logging.StreamHandler(stream=None)¶
Manejador que escribe los registros formateados, seguidos de
self.terminator("\n"de forma predeterminada), en stream. stream toma como valor predeterminadosys.stderr.- stream¶
El objeto stream de destino.
- class logging.FileHandler(filename: str, mode: str = 'a', encoding: str = 'UTF-8')¶
Subclase de
StreamHandlerque abre filename con el mode y el encoding dados y escribe en él los registros formateados. El archivo subyacente se cierra enclose().
- class logging.Formatter(fmt: str | None = None, datefmt: str | None = None)¶
Renderiza instancias de
LogRecordcomo cadenas.fmt es una plantilla al estilo printf. Las claves reconocidas son
%(name)s,%(message)s,%(msecs)d,%(asctime)sy%(levelname)s. Cuando no se establece, su valor predeterminado es"%(levelname)s:%(name)s:%(message)s".datefmt es la plantilla de
time.strftimeusada para mostrar%(asctime)s. Su valor predeterminado es"%Y-%m-%d %H:%M:%S".- formatTime(datefmt: str, record: LogRecord) str | None¶
Formatea
record.ctusandotime.strftimey datefmt. DevuelveNoneen las plataformas dondetime.strftimeno está disponible.
- format(record: LogRecord) str¶
Renderiza record. Si la plantilla usa
asctime, se invoca primeroformatTime()para rellenarrecord.asctime.