This class implements an internal threaded listener which watches for
LogRecords being added to a queue, removes them and passes them to a
list of handlers for processing.
3.5: The respect_handler_level argument was added.
3.14: QueueListener can now be used as a context manager via with. When entering the context, the listener is started. When exiting the context, the listener is stopped. __enter__() returns the QueueListener object.