6.28.3 Oggetti Formatter

I Formatter possiedono i seguenti attributi e metodi. Essi sono responsabili della conversione di un LogRecord in (tipicamente) una stringa che può essere interpretata sia da un essere umano che da un sistema esterno. Il Formatter di base permette di specificare una stringa di formattazione. Se non ne viene specificata una, il valore predefinito sarà '%(messaggio)s'.

Un Formatter può essere inizializzato con una stringa di formato che faccia uso della conoscenza degli attributi di LogRecord - come il valore predefinito menzionato precedentemente, che sfrutta il fatto che un messaggio utente e gli argomenti siano stati preformattati in un attributo message di LogRecord. Questo formato di stringa contiene le chiavi di mappa standard Python %-style. Vedete la sezione 2.3.6, ``Operazioni sulla formattazione delle stringhe'' per ulteriori informazioni in merito.

Attualmente, le chiavi di mappatura utili in un LogRecord sono:

Formato  Descrizione 
%(name)s Nome del logger (canale di logging).
%(levelno)s Livello numerico per il logging dei mesaggi (DEBUG, INFO, WARNING, ERROR, CRITICAL).
%(levelname)s Livello testuale per il logging dei messaggi ('DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL').
%(pathname)s Percorso completo del file sorgente da cui la chiamata di logging è stata invocata (se disponibile).
%(filename)s Porzione del percorso che contiene il nome del file.
%(module)s Modulo (nome della porzione del nome del file).
%(lineno)d Numero riga del sorgente da cui la chiamata di logging è stata generata (se disponibile).
%(created)f Ora in cui è stato creato il LogRecord (come restituito da time.time()).
%(asctime)s Il formato umanamente comprensibile del momento (Ora/data) in cui viene creato LogRecord. La sua forma predefinita è questa: ``2003-07-08 16:49:45,896'' (il numero dopo la virgola è la porzione in millisecondi dell'ora.)
%(msecs)d Porzione dei millisecondi dell'ora in cui è stato creato LogRecord.
%(thread)d ID del Thread (se disponibile).
%(process)d ID del processo (se disponibile).
%(message)s Il messaggio registrato, calcolato come msg % args.

class Formatter( [fmt[, datefmt]])
Restituisce una nuova istanza della classe Formatter. L'istanza viene inizializzata con una stringa di formato per il messaggio, insieme alla stringa di formato per la porzione data/ora del messaggio. Se fmt non viene specificato, allora viene usato '%(messaggio)s'. Se non viene specificato datefmt, viene usato il formato dati ISO8601.

format( record)
Il dizionario degli attributi di record viene utilizzato come operando per le operazioni di formattazione della stringa. Restituisce la stringa risultante. Prima della formattazione del dizionario, viene eseguita una coppia di passi preparatori. L'attributo messaggio del record viene calcolato utilizzando msg % args. Se la stringa di formattazione contiene '(asctime)', formatTime() viene chiamata per l'evento time. Se c'è un'informazione sull'eccezione, viene formattata usando formatException() ed aggiunta al messaggio.

formatTime( record[, datefmt])
Questo metodo dovrebbe essere chiamato da format() attraverso un formatter che voglia fare uso di una stringa time formattata. Questo metodo può essere sovrascritto nei formatter per sopperire a richieste particolari, ma il compito principale resta il seguente: se datefmt (una stringa) viene specificata, viene usata con time.strftime() per formattare l'ora di creazione del record. Altrimenti, viene usato il formato ISO8601. La stringa risultante viene restituita.

formatException( exc_info)
Formatta la specifica informazione di eccezione (una tupla standard di eccezione viene restituita da sys.exc_info()) come una stringa. L'implementazione predefinita usa traceback.print_exception(). La stringa risultante viene restituita.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.