From 1f2b55a660359ecfb6ffe5f51f438cbc62edfcae Mon Sep 17 00:00:00 2001 From: zhiqiangfan Date: Fri, 21 Jul 2023 14:21:37 +0800 Subject: [PATCH 1/2] add logger for kazoo.handlers.threading --- kazoo/client.py | 2 +- kazoo/handlers/threading.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) 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 From 0302623f63e7e634005ccfef2e35389bef5410d3 Mon Sep 17 00:00:00 2001 From: zhiqiangfan Date: Fri, 21 Jul 2023 14:31:57 +0800 Subject: [PATCH 2/2] fix lint --- kazoo/client.py | 4 +++- kazoo/handlers/threading.py | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/kazoo/client.py b/kazoo/client.py index 1830ca0b..d000688e 100644 --- a/kazoo/client.py +++ b/kazoo/client.py @@ -221,7 +221,9 @@ def __init__( self.logger = logger or log # Record the handler strategy used - self.handler = handler or SequentialThreadingHandler(logger=self.logger) + self.handler = handler + if not handler: + self.handler = 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 be610878..83eebc51 100644 --- a/kazoo/handlers/threading.py +++ b/kazoo/handlers/threading.py @@ -110,6 +110,8 @@ def running(self): return self._running def _create_thread_worker(self, work_queue): + log = self.logger + def _thread_worker(): # pragma: nocover while True: try: @@ -119,7 +121,7 @@ def _thread_worker(): # pragma: nocover break func() except Exception: - self.logger.exception("Exception in worker queue thread") + log.exception("Exception in worker queue thread") finally: work_queue.task_done() del func # release before possible idle