The MemoryHandler class, located in the
logging.handlers module, supports buffering of logging
records in memory, periodically flushing them to a target
handler. Flushing occurs whenever the buffer is full, or when an event
of a certain severity or greater is seen.
MemoryHandler is a subclass of the more general
BufferingHandler, which is an abstract class. This buffers logging
records in memory. Whenever each record is added to the buffer, a
check is made by calling shouldFlush() to see if the buffer
should be flushed. If it should, then flush() is expected to
do the needful.
classBufferingHandler(
capacity)
Initializes the handler with a buffer of the specified capacity.
emit(
record)
Appends the record to the buffer. If shouldFlush() returns true,
calls flush() to process the buffer.
flush(
)
You can override this to implement custom flushing behavior. This version
just zaps the buffer to empty.
shouldFlush(
record)
Returns true if the buffer is up to capacity. This method can be
overridden to implement custom flushing strategies.
classMemoryHandler(
capacity[, flushLevel
[, target]])
Returns a new instance of the MemoryHandler class. The
instance is initialized with a buffer size of capacity. If
flushLevel is not specified, ERROR is used. If no
target is specified, the target will need to be set using
setTarget() before this handler does anything useful.
close(
)
Calls flush(), sets the target to None and
clears the buffer.
flush(
)
For a MemoryHandler, flushing means just sending the buffered
records to the target, if there is one. Override if you want
different behavior.
setTarget(
target)
Sets the target handler for this handler.
shouldFlush(
record)
Checks for buffer full or a record at the flushLevel or higher.