diff --git a/src/fastcs/logging/_logging.py b/src/fastcs/logging/_logging.py index 3dc2ba2fc..2d54e2f01 100644 --- a/src/fastcs/logging/_logging.py +++ b/src/fastcs/logging/_logging.py @@ -2,7 +2,7 @@ import os from enum import StrEnum from logging import LogRecord -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any from prompt_toolkit.patch_stdout import StdoutProxy from pygelf import GelfUdpHandler @@ -79,7 +79,8 @@ def format_record(record) -> str: sep = ", " if "extra" in record: extras = [ - format_key_value(k, v) + # Escape `<` so Loguru doesn't parse them as format tags + format_key_value(k, f"{v}".replace("<", r"\<")) for k, v in record["extra"].items() if not k.startswith("_") ] @@ -99,7 +100,7 @@ def format_record(record) -> str: """ -def format_key_value(k, v): +def format_key_value(k: Any, v: Any) -> str: return f"{k}={v}"