logging — registo de eventos¶
Este módulo fornece um subconjunto leve do pacote logging padrão do Python, adaptado para MicroPython. Suporta registo por níveis através de objetos Logger com nomes hierárquicos, um pequeno conjunto de handlers (StreamHandler, FileHandler), formatação no estilo printf via Formatter, e funções de conveniência a nível de módulo equivalentes às que operam sobre o logger raiz.
O módulo segue a API familiar do CPython de forma suficientemente próxima para que aplicações simples escritas para a biblioteca padrão funcionem sem alterações. Filtros, bloqueio para múltiplos processos, o formato de ficheiro de configuração e a maioria das classes de handlers não estão disponíveis.
Constantes de Nível¶
Funções¶
- logging.getLogger(name: str | None = None) Logger¶
Devolve o
Loggerregistado com o nome name, criando-o na primeira utilização. Se name forNone, é devolvido o logger raiz. A primeira chamada comname="root"(ou sem name definido) invoca implicitamentebasicConfigpara associar umStreamHandlerpredefinido que escreve emsys.stderr.
- logging.log(level: int, msg: str, *args) None¶
Regista uma mensagem no level indicado no logger raiz. Os args são interpolados em msg utilizando a formatação
%no estilo printf; um único argumento dict é utilizado como mapeamento.
- logging.exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Equivalente a
getLogger().exception(msg, *args, exc_info=exc_info). Regista a mensagem emERRORe, adicionalmente, formata o traceback da exceção ativa quando exc_info for verdadeiro. Se exc_info for em si uma instância deBaseException, é utilizado o traceback dessa exceção; caso contrário, é consultadosys.exc_info()quando disponível.
- logging.shutdown() None¶
Fecha todos os handlers associados a todos os loggers conhecidos e esquece os loggers. Registado automaticamente via
sys.atexitquando esse hook está disponível.
- logging.addLevelName(level: int, name: str) None¶
Associa o name textual ao level numérico para que
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, é criado um
FileHandlerutilizando filemode e encoding; caso contrário, é utilizado umStreamHandlerque escreve em stream (por omissãosys.stderr).format e datefmt são passados diretamente a um novo
Formatter.level define tanto o nível do handler como o nível do logger raiz.
Se o logger raiz já tiver handlers, esta função não tem efeito, exceto se force for
True, caso em que os handlers existentes são fechados e substituídos.
Classes¶
- class logging.Logger(name: str, level: int = NOTSET)¶
Um logger com nome. Construa loggers via
getLoggerem vez de diretamente, para quegetLoggerpossa devolver a mesma instância para o mesmo nome.- handlers: list¶
A lista de instâncias de
Handlerassociadas a este logger. Quando vazia, as mensagens são despachadas para os handlers do logger raiz.
- isEnabledFor(level: int) bool¶
Devolve
Truese uma mensagem de level fosse processada por este logger.
- getEffectiveLevel() int¶
Devolve o primeiro valor não nulo entre: o nível deste logger, o nível do logger raiz, ou
WARNING.
- log(level: int, msg: str, *args) None¶
Regista msg em level. Os args são interpolados em msg com o operador
%; se o primeiro argumento posicional for um dict, é utilizado como mapeamento.
- exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Regista msg em
ERRORe, quando exc_info for verdadeiro, acrescenta o traceback formatado. Se exc_info for uma instância deBaseException, é renderizado o traceback dessa exceção; 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¶
Liberta os recursos detidos pelo handler. Chamado por
shutdowne porFileHandlerquando é fechado.
- class logging.StreamHandler(stream=None)¶
Handler que escreve registos formatados, seguidos de
self.terminator("\n"por omissão), em stream. stream tem como valor predefinidosys.stderr.- stream¶
O objeto stream de destino.
- class logging.FileHandler(filename: str, mode: str = 'a', encoding: str = 'UTF-8')¶
Subclasse de
StreamHandlerque abre filename com o mode e encoding indicados e escreve registos formatados. O ficheiro subjacente é fechado emclose().
- class logging.Formatter(fmt: str | None = None, datefmt: str | None = None)¶
Renderiza instâncias de
LogRecordcomo cadeias de caracteres.fmt é um modelo no estilo printf. As chaves reconhecidas são
%(name)s,%(message)s,%(msecs)d,%(asctime)se%(levelname)s. Quando não definido, o valor predefinido é"%(levelname)s:%(name)s:%(message)s".datefmt é o modelo
time.strftimeutilizado para renderizar%(asctime)s. Por omissão é"%Y-%m-%d %H:%M:%S".- formatTime(datefmt: str, record: LogRecord) str | None¶
Formata
record.ctutilizandotime.strftimee datefmt. DevolveNoneem plataformas ondetime.strftimenão está disponível.
- format(record: LogRecord) str¶
Renderiza record. Se o modelo utilizar
asctime,formatTime()é invocado primeiro para preencherrecord.asctime.