ewoksutils.logging_utils.asyncwrapper.AsyncHandlerWrapper#

class ewoksutils.logging_utils.asyncwrapper.AsyncHandlerWrapper(handler)[source]#

Bases: QueueHandler

A handler which blocks too long on handling events can be wrapped by this handler which will queue the logging event and redirect it to the original handler in a separate thread.

Parameters:

handler (Handler) –

acquire()#

Acquire the I/O thread lock.

addFilter(filter)#

Add the specified filter to this handler.

close()[source]#

Stop accepting events, process queued events and stop the listener thread.

createLock()#

Acquire a thread lock for serializing access to the underlying I/O.

emit(record)#

Emit a record.

Writes the LogRecord to the queue, preparing it for pickling first.

enqueue(record)#

Enqueue a record.

The base implementation uses put_nowait. You may want to override this method if you want to use blocking, timeouts or custom queue implementations.

filter(record)#

Determine if a record is loggable by consulting all the filters.

The default is to allow the record to be logged; any filter can veto this and the record is then dropped. Returns a zero value if a record is to be dropped, else non-zero.

Changed in version 3.2: Allow filters to be just callables.

flush()[source]#

Dequeue and handle records in the current thread

format(record)#

Format the specified record.

If a formatter is set, use it. Otherwise, use the default formatter for the module.

get_name()#
handle(record)#

Conditionally emit the specified logging record.

Emission depends on filters which may have been added to the handler. Wrap the actual emission of the record with acquisition/release of the I/O thread lock. Returns whether the filter passed the record for emission.

handleError(record)#

Handle errors which occur during an emit() call.

This method should be called from handlers when an exception is encountered during an emit() call. If raiseExceptions is false, exceptions get silently ignored. This is what is mostly wanted for a logging system - most users will not care about errors in the logging system, they are more interested in application errors. You could, however, replace this with a custom handler if you wish. The record which was being processed is passed in to this method.

property name#
prepare(record)#

Prepares a record for queuing. The object returned by this method is enqueued.

The base implementation formats the record to merge the message and arguments, and removes unpickleable items from the record in-place.

You might want to override this method if you want to convert the record to a dict or JSON string, or send a modified copy of the record while leaving the original intact.

release()#

Release the I/O thread lock.

removeFilter(filter)#

Remove the specified filter from this handler.

setFormatter(fmt)#

Set the formatter for this handler.

setLevel(level)#

Set the logging level of this handler. level must be an int or a str.

set_name(name)#
property wrapped_handler: Handler#