From 6cb52c1b2ac0fb460d187d8eeda2b4b4ce65e09f Mon Sep 17 00:00:00 2001 From: florian Date: Tue, 21 Oct 2025 20:18:28 +0200 Subject: [PATCH] Added json logger --- requirements.txt | 1 + src/logger_handler.py | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/requirements.txt b/requirements.txt index a817154..b126dcf 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,5 +17,6 @@ propcache==0.4.1 pycares==4.11.0 pycparser==2.23 PyMySQL==1.1.2 +python-json-logger==4.0.0 typing_extensions==4.15.0 yarl==1.22.0 diff --git a/src/logger_handler.py b/src/logger_handler.py index 3911736..c504d1e 100644 --- a/src/logger_handler.py +++ b/src/logger_handler.py @@ -1,5 +1,11 @@ -import logging import os +import logging + +try: + from pythonjsonlogger import jsonlogger + JSON_LOGGING = True +except ImportError: + JSON_LOGGING = False LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO").upper() if LOG_LEVEL not in {"ERROR", "DEBUG", "INFO", "WARNING", "CRITICAL"}: @@ -9,9 +15,14 @@ def setup_logger(name: str) -> logging.Logger: logger = logging.getLogger(name) if not logger.handlers: handler = logging.StreamHandler() - formatter = logging.Formatter( - '%(asctime)s - %(name)s - %(levelname)s - %(message)s' - ) + if JSON_LOGGING: + formatter = jsonlogger.JsonFormatter( + "%(asctime)s %(name)s %(levelname)s %(message)s" + ) + else: + formatter = logging.Formatter( + "%(asctime)s - %(name)s - %(levelname)s - %(message)s" + ) handler.setFormatter(formatter) logger.addHandler(handler) logger.setLevel(getattr(logging, LOG_LEVEL))