diff --git a/kazoo/client.py b/kazoo/client.py index 27b7c384..1830ca0b 100644 --- a/kazoo/client.py +++ b/kazoo/client.py @@ -221,7 +221,7 @@ def __init__( self.logger = logger or log # Record the handler strategy used - self.handler = handler if handler else SequentialThreadingHandler() + self.handler = handler or SequentialThreadingHandler(logger=self.logger) if inspect.isclass(self.handler): raise ConfigurationError( "Handler must be an instance of a class, " diff --git a/kazoo/handlers/threading.py b/kazoo/handlers/threading.py index b9acd875..be610878 100644 --- a/kazoo/handlers/threading.py +++ b/kazoo/handlers/threading.py @@ -96,8 +96,9 @@ class SequentialThreadingHandler(object): queue_impl = queue.Queue queue_empty = queue.Empty - def __init__(self): + def __init__(self, logger=None): """Create a :class:`SequentialThreadingHandler` instance""" + self.logger = logger or log self.callback_queue = self.queue_impl() self.completion_queue = self.queue_impl() self._running = False @@ -118,7 +119,7 @@ def _thread_worker(): # pragma: nocover break func() except Exception: - log.exception("Exception in worker queue thread") + self.logger.exception("Exception in worker queue thread") finally: work_queue.task_done() del func # release before possible idle