logging — registrazione degli eventi¶
Questo modulo fornisce un sottoinsieme leggero del pacchetto logging standard di Python, adattato a MicroPython. Supporta la registrazione per livelli tramite oggetti Logger con nomi gerarchici, un piccolo insieme di handler (StreamHandler, FileHandler), la formattazione in stile printf tramite Formatter e funzioni di comodità a livello di modulo equivalenti a quelle che operano sul logger radice.
Il modulo segue l’API familiare di CPython in modo abbastanza fedele da far funzionare senza modifiche le applicazioni semplici scritte per la libreria standard. Non sono forniti i filtri, il blocco multi-processo, il formato del file di configurazione e la maggior parte delle classi di handler.
Costanti di livello¶
Funzioni¶
- logging.getLogger(name: str | None = None) Logger¶
Restituisce il
Loggerregistrato sotto name, creandolo al primo utilizzo. Se name èNoneviene restituito il logger radice. La prima chiamata conname="root"(o con name non impostato) invoca implicitamentebasicConfigper collegare unoStreamHandlerpredefinito che scrive susys.stderr.
- logging.log(level: int, msg: str, *args) None¶
Registra un messaggio a livello level sul logger radice. Gli args vengono interpolati in msg usando la formattazione in stile printf con
%; un singolo argomento dict viene usato come mappatura.
- logging.exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Equivalente a
getLogger().exception(msg, *args, exc_info=exc_info). Registra il messaggio a livelloERRORe, inoltre, formatta il traceback dell’eccezione attiva quando exc_info è vero. Se exc_info è esso stesso unBaseException, viene usato il traceback di tale eccezione; altrimenti, quando disponibile, viene consultatosys.exc_info().
- logging.shutdown() None¶
Chiude ogni handler collegato a ogni logger noto e dimentica i logger. Registrato automaticamente tramite
sys.atexitquando tale hook è disponibile.
- logging.addLevelName(level: int, name: str) None¶
Associa il nome testuale name al livello numerico level in modo che
Formatterpossa renderizzarlo tramite%(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 il logger radice con un singolo handler.
Se viene fornito filename viene creato un
FileHandlerusando filemode e encoding; altrimenti viene usato unoStreamHandlerche scrive su stream (con valore predefinitosys.stderr).format e datefmt vengono passati a un nuovo
Formatter.level imposta sia il livello dell’handler sia il livello del logger radice.
Se il logger radice ha già degli handler questa funzione non ha effetto a meno che force non sia
True, nel qual caso gli handler esistenti vengono chiusi e sostituiti.
Classi¶
- class logging.Logger(name: str, level: int = NOTSET)¶
Un logger con nome. Costruisci i logger tramite
getLoggeranziché direttamente, in modo chegetLoggerpossa restituire la stessa istanza per lo stesso nome.- handlers: list¶
L’elenco delle istanze di
Handlercollegate a questo logger. Quando è vuoto, i messaggi vengono inviati agli handler del logger radice.
- isEnabledFor(level: int) bool¶
Restituisce
Truese un messaggio di livello level verrebbe elaborato da questo logger.
- getEffectiveLevel() int¶
Restituisce il primo valore diverso da zero tra: il livello di questo logger, il livello del logger radice o
WARNING.
- log(level: int, msg: str, *args) None¶
Registra msg a livello level. Gli args vengono interpolati in msg con l’operatore
%; se il primo argomento posizionale è un dict, viene usato come mappatura.
- exception(msg: str, *args, exc_info: bool | BaseException = True) None¶
Registra msg a livello
ERRORe, quando exc_info è vero, accoda il traceback formattato. Se exc_info è un’istanza diBaseException, viene renderizzato il traceback di tale eccezione; altrimenti l’eccezione attiva viene consultata tramitesys.exc_info().
- class logging.Handler(level: int = NOTSET)¶
Classe base per tutti gli handler. Le sottoclassi implementano
emit().- close() None¶
Rilascia le risorse detenute dall’handler. Chiamata da
shutdowne daFileHandlerquando viene chiuso.
- class logging.StreamHandler(stream=None)¶
Handler che scrive i record formattati, seguiti da
self.terminator("\n"per impostazione predefinita), su stream. stream ha come valore predefinitosys.stderr.- stream¶
L’oggetto stream di destinazione.
- class logging.FileHandler(filename: str, mode: str = 'a', encoding: str = 'UTF-8')¶
Sottoclasse di
StreamHandlerche apre filename con i mode ed encoding indicati e vi scrive i record formattati. Il file sottostante viene chiuso conclose().
- class logging.Formatter(fmt: str | None = None, datefmt: str | None = None)¶
Renderizza le istanze di
LogRecordcome stringhe.fmt è un template in stile printf. Le chiavi riconosciute sono
%(name)s,%(message)s,%(msecs)d,%(asctime)se%(levelname)s. Quando non è impostato, il valore predefinito è"%(levelname)s:%(name)s:%(message)s".datefmt è il template
time.strftimeusato per renderizzare%(asctime)s. Il valore predefinito è"%Y-%m-%d %H:%M:%S".- formatTime(datefmt: str, record: LogRecord) str | None¶
Formatta
record.ctusandotime.strftimee datefmt. RestituisceNonesulle piattaforme dovetime.strftimenon è disponibile.
- format(record: LogRecord) str¶
Renderizza record. Se il template usa
asctime, viene invocato primaformatTime()per popolarerecord.asctime.