From a0ceedaf604ca8282cb95775b9d5bd956562e12c Mon Sep 17 00:00:00 2001 From: florian Date: Mon, 3 Nov 2025 18:42:06 +0100 Subject: [PATCH] First version --- pyproject.toml | 10 ++++++++++ simple_logger_handler/__init__.py | 3 +++ simple_logger_handler/logger_handler.py | 20 ++++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 pyproject.toml create mode 100644 simple_logger_handler/__init__.py create mode 100644 simple_logger_handler/logger_handler.py diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..1e5452a --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,10 @@ +[project] +name = "simple-logger-handler" +version = "0.1.0" +description = "Simple reusable logger setup." +authors = [{ name = "Florian Gänsejunge" }] +dependencies = ["python-json-logger"] + +[build-system] +requires = ["setuptools", "wheel"] +build-backend = "setuptools.build_meta" diff --git a/simple_logger_handler/__init__.py b/simple_logger_handler/__init__.py new file mode 100644 index 0000000..8a12369 --- /dev/null +++ b/simple_logger_handler/__init__.py @@ -0,0 +1,3 @@ +from .logger_handler import setup_logger + +__all__ = ["setup_logger"] diff --git a/simple_logger_handler/logger_handler.py b/simple_logger_handler/logger_handler.py new file mode 100644 index 0000000..cc04065 --- /dev/null +++ b/simple_logger_handler/logger_handler.py @@ -0,0 +1,20 @@ +import os +import logging +from pythonjsonlogger import jsonlogger + +LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO").upper() +if LOG_LEVEL not in {"ERROR", "DEBUG", "INFO", "WARNING", "CRITICAL"}: + LOG_LEVEL = "INFO" + +def setup_logger(name: str) -> logging.Logger: + logger = logging.getLogger(name) + if not logger.handlers: + handler = logging.StreamHandler() + formatter = jsonlogger.JsonFormatter( + "%(asctime)s %(name)s %(levelname)s %(message)s" + ) + handler.setFormatter(formatter) + logger.addHandler(handler) + logger.setLevel(getattr(logging, LOG_LEVEL)) + logger.debug(f"Logger {name} initialized with level {LOG_LEVEL}") + return logger