From ff7569734627c90c64af14048f609cd7d020e028 Mon Sep 17 00:00:00 2001 From: Florian Date: Sat, 17 Oct 2026 12:08:22 +0200 Subject: [PATCH] Added Uvicorn specific handle to renamve uvicorn.error --- pyproject.toml | 2 +- simple_logger_handler/logger_handler.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 25aa22f..7c2d0bb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "simple-logger-handler" -version = "0.2.0" +version = "0.2.1" description = "Simple reusable logger setup." authors = [{ name = "Florian Gänsejunge" }] dependencies = ["python-json-logger"] diff --git a/simple_logger_handler/logger_handler.py b/simple_logger_handler/logger_handler.py index de33ee9..bf81774 100644 --- a/simple_logger_handler/logger_handler.py +++ b/simple_logger_handler/logger_handler.py @@ -12,6 +12,12 @@ _UVICORN_LOGGERS = ("uvicorn", "uvicorn.error", "uvicorn.access") _lock = threading.Lock() _configured = False +class _UvicornCleanupFilter(logging.Filter): + def filter(self, record: logging.LogRecord) -> bool: + if record.name == "uvicorn.error": + record.name = "uvicorn" + record.__dict__.pop("color_message", None) + return True def _resolve_level() -> tuple[str, bool]: """Return (level_name, was_valid). Falls back to INFO if invalid.""" @@ -52,6 +58,7 @@ def configure_logging(*, force: bool = False) -> None: handler = logging.StreamHandler() handler.setFormatter(_build_formatter()) + handler.addFilter(_UvicornCleanupFilter()) handler._shared_handler = True # marker for idempotency root.addHandler(handler) root.setLevel(level)