logging — registro de eventos¶
Este módulo fornece um subconjunto leve do pacote logging padrão do Python adaptado para o MicroPython. Ele suporta registro por níveis através de objetos Logger nomeados hierarquicamente, um pequeno conjunto de handlers (StreamHandler, FileHandler), formatação no estilo printf via Formatter e funções de conveniência em nível de módulo equivalentes àquelas que operam sobre o logger raiz.
O módulo segue a API familiar do CPython de forma próxima o suficiente para que aplicações simples escritas para a biblioteca padrão funcionem sem alterações. Filtros, travamento entre múltiplos processos, o formato de arquivo de configuração e a maioria das classes de handler não são fornecidos.
Constantes de Nível¶
Funções¶
- logging.getLogger(name: str | None = None) Logger¶
Retorna o
Loggerregistrado sob name, criando-o no primeiro uso. Se name forNoneo logger raiz é retornado. A primeira chamada comname="root"(ou com name não definido) invoca implicitamentebasicConfigpara anexar umStreamHandlerpadrão que escreve emsys.stderr.
- logging.log(level: int, msg: str, *args) None¶
Registra uma mensagem no nível level no logger raiz. Os args são interpolados em msg usando formatação no estilo printf com
%; um único argumento do tipo dict é usado como o mapeamento.
- logging.exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Equivalente a
getLogger().exception(msg, *args, exc_info=exc_info). Registra a mensagem emERRORe, adicionalmente, formata o traceback da exceção ativa quando exc_info é verdadeiro. Se exc_info for ele próprio umBaseException, o traceback dessa exceção é usado; caso contrário,sys.exc_info()é consultado quando disponível.
- logging.shutdown() None¶
Fecha todos os handlers anexados a todos os loggers conhecidos e esquece os loggers. Registrado automaticamente através de
sys.atexitquando esse hook está disponível.
- logging.addLevelName(level: int, name: str) None¶
Associa o name textual ao level numérico para que o
Formatterpossa renderizá-lo 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¶
Configura o logger raiz com um único handler.
Se filename for fornecido, um
FileHandleré criado usando filemode e encoding; caso contrário, é usado umStreamHandlerque escreve em stream (cujo padrão ésys.stderr).format e datefmt são repassados a um novo
Formatter.level define tanto o nível do handler quanto o nível do logger raiz.
Se o logger raiz já possuir handlers, esta função é uma operação nula, a menos que force seja
True, caso em que os handlers existentes são fechados e substituídos.
Classes¶
- class logging.Logger(name: str, level: int = NOTSET)¶
Um logger nomeado. Construa loggers através de
getLoggerem vez de diretamente, para quegetLoggerpossa retornar a mesma instância para o mesmo nome.- handlers: list¶
A lista de instâncias de
Handleranexadas a este logger. Quando vazia, as mensagens são despachadas para os handlers do logger raiz.
- isEnabledFor(level: int) bool¶
Retorna
Truese uma mensagem de level seria processada por este logger.
- getEffectiveLevel() int¶
Retorna o primeiro valor diferente de zero entre: o nível deste logger, o nível do logger raiz, ou
WARNING.
- log(level: int, msg: str, *args) None¶
Registra msg no nível level. Os args são interpolados em msg com o operador
%; se o primeiro argumento posicional for um dict, ele é usado como um mapeamento.
- exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Registra msg em
ERRORe, quando exc_info é verdadeiro, anexa o traceback formatado. Se exc_info for uma instância deBaseException, o traceback dessa exceção é renderizado; caso contrário, a exceção ativa é consultada viasys.exc_info().
- class logging.Handler(level: int = NOTSET)¶
Classe base para todos os handlers. As subclasses implementam
emit().- close() None¶
Libera os recursos mantidos pelo handler. Chamado por
shutdowne porFileHandlerquando ele é fechado.
- class logging.StreamHandler(stream=None)¶
Handler que escreve registros formatados, seguidos por
self.terminator("\n"por padrão), em stream. O padrão de stream ésys.stderr.- stream¶
O objeto de stream de destino.
- class logging.FileHandler(filename: str, mode: str = 'a', encoding: str = 'UTF-8')¶
Subclasse de
StreamHandlerque abre filename com o mode e o encoding fornecidos e escreve registros formatados nele. O arquivo subjacente é fechado emclose().
- class logging.Formatter(fmt: str | None = None, datefmt: str | None = None)¶
Renderiza instâncias de
LogRecordem strings.fmt é um template no estilo printf. As chaves reconhecidas são
%(name)s,%(message)s,%(msecs)d,%(asctime)se%(levelname)s. Quando não definido, o padrão é"%(levelname)s:%(name)s:%(message)s".datefmt é o template de
time.strftimeusado para renderizar%(asctime)s. O padrão é"%Y-%m-%d %H:%M:%S".- formatTime(datefmt: str, record: LogRecord) str | None¶
Formata
record.ctusandotime.strftimee datefmt. RetornaNoneem plataformas ondetime.strftimenão está disponível.
- format(record: LogRecord) str¶
Renderiza record. Se o template usar
asctime,formatTime()é invocado primeiro para preencherrecord.asctime.