diff options
| author | 2018-12-10 13:18:15 +0000 | |
|---|---|---|
| committer | 2018-12-10 13:18:15 +0000 | |
| commit | df8135f105f637b3770f6548fe23958e6b10aa10 (patch) | |
| tree | 55478a7257cff9a4e26a44020314e1022f409ca7 | |
| parent | Use more distinctive arrow characters for youtube up/down votes (diff) | |
| signature | ||
Put logging functionality on to it's own thread
| -rw-r--r-- | src/Logging.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/Logging.py b/src/Logging.py index 0b934de4..963860dc 100644 --- a/src/Logging.py +++ b/src/Logging.py @@ -1,4 +1,4 @@ -import logging, logging.handlers, os, sys, time, typing +import logging, logging.handlers, os, queue, sys, threading, time, typing LEVELS = { "trace": logging.DEBUG-1, @@ -54,6 +54,16 @@ class Log(object): warn_handler.setFormatter(formatter) self.logger.addHandler(warn_handler) + self._queue = queue.Queue() + self._thread = threading.Thread(target=self._loop) + self._thread.daemon = True + self._thread.start() + + def _loop(self): + while True: + message, params, level, kwargs = self._queue.get(block=True) + self.logger.log(level, message, *params, **kwargs) + def trace(self, message: str, params: typing.List, **kwargs): self._log(message, params, LEVELS["trace"], kwargs) def debug(self, message: str, params: typing.List, **kwargs): @@ -67,4 +77,4 @@ class Log(object): def critical(self, message: str, params: typing.List, **kwargs): self._log(message, params, logging.CRITICAL, kwargs) def _log(self, message: str, params: typing.List, level: int, kwargs: dict): - self.logger.log(level, message, *params, **kwargs) + self._queue.put((message, params, level, kwargs)) |
