From 0d169263858d611b2110d988ca3f4ff3477567c3 Mon Sep 17 00:00:00 2001 From: Gary Yendell Date: Wed, 3 Dec 2025 16:50:19 +0000 Subject: [PATCH] Escape `<` in logging extras so they aren't treated as colour tags --- src/fastcs/logging/_logging.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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}"