From 9f76821ca87430687040495548c12faae6797514 Mon Sep 17 00:00:00 2001 From: florian Date: Tue, 21 Oct 2025 20:15:59 +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 c5a5175..e1d082c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,6 +17,7 @@ propcache==0.4.1 pycparser==2.23 pydantic==2.12.0 pydantic_core==2.41.1 +python-json-logger==4.0.0 sniffio==1.3.1 starlette==0.48.0 typing-inspection==0.4.2 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))