6.28.2.9 MemoryHandler

Il MemoryHandler supporta il buffering in memoria dei record di logging, scaricandoli periodicamente verso un handler di destinazione (NdT: target). Lo svuotamento avviene quando il buffer è pieno o quando un evento di una certa importanza o più grande viene registrato.

MemoryHandler è una classe derivata della classe più generale BufferingHandler, che è una classe astratta. Questa mantiene il record di logging in memoria. Viene effettuato un controllo con la chiamata shouldFlush() quando ogni record viene aggiunto al buffer, per verificare se il buffer deve essere svuotato. Se ciò si verifica, si attende flush() per eseguire il compito necessario.

class BufferingHandler( capacity)
Inizializza l'handler con un buffer di capacità capacity specificata.

emit( record)
Aggiunge il record al buffer. Se shouldFlush() restituisce un valore vero, chiama flush() per elaborare il buffer.

flush( )
Si può sovrascrivere questo per implementare un proprio schema di svuotamento. Questa versione semplicemente azzera il buffer.

shouldFlush( record)
Restituisce vero se il buffer è pieno. Questo metodo può essere sovrascritto per implementare un proprio schema di svuotamento.

class MemoryHandler( capacity[, flushLevel [, target]])
Restituisce una nuova istanza della classe MemoryHandler. L'istanza viene inizializzata con un buffer di capacità capacity. Se flushLevel non viene specificato, viene utilizzato ERROR. Se non viene specificato target, sarà necessario specificarlo successivamente usando setTarget() prima di questo handler per fargli fare qualcosa di utile.

close( )
Chiama flush(), imposta il target a None e ripulisce il buffer.

flush( )
Per un MemoryHandler, lo svuotamento semplicemente significa spedire dei record bufferizzati verso una destinazione, sempre che ne esista una. La si sovrascrive se si ha necessità di eseguire un compito diverso.

setTarget( target)
Imposta l'handler di destinazione per questo handler.

shouldFlush( record)
Verifica se il buffer è pieno o se un record sia pari a flushLevel o maggiore.

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