From a25f1526ee1ee7534d31307e6f948c541723b356 Mon Sep 17 00:00:00 2001 From: Marc Sommerhalder Date: Thu, 3 Jul 2025 13:54:55 +0200 Subject: [PATCH] PB-1785: Support logging to queue --- app/config/logging-cfg-local.yml | 15 ++++++++++++--- app/helpers/logging.py | 8 ++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 app/helpers/logging.py diff --git a/app/config/logging-cfg-local.yml b/app/config/logging-cfg-local.yml index f0efc841..160456cd 100644 --- a/app/config/logging-cfg-local.yml +++ b/app/config/logging-cfg-local.yml @@ -3,9 +3,7 @@ disable_existing_loggers: False # this allow to get logger at module level root: handlers: - - console - - file-standard - - file-json + - queue_listener level: DEBUG propagate: True @@ -156,4 +154,15 @@ handlers: formatter: json filename: ${BASE_DIR}/${LOGS_DIR}/server-json-logs.json mode: w + queue_listener: + class: logging.handlers.QueueHandler + listener: helpers.logging.AutoStartQueueListener + queue: + (): queue.Queue + maxsize: 1000 + level: DEBUG + handlers: + - console + - file-standard + - file-json diff --git a/app/helpers/logging.py b/app/helpers/logging.py new file mode 100644 index 00000000..e1a0d241 --- /dev/null +++ b/app/helpers/logging.py @@ -0,0 +1,8 @@ +from logging.handlers import QueueListener + + +class AutoStartQueueListener(QueueListener): + + def __init__(self, queue, *handlers, respect_handler_level=False): + super().__init__(queue, *handlers, respect_handler_level=respect_handler_level) + self.start()