This is an automated email from the ASF dual-hosted git repository.

sbp pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tooling-trusted-releases.git


The following commit(s) were added to refs/heads/main by this push:
     new 314bb8e  Prevent events from being double encoded in the audit logs
314bb8e is described below

commit 314bb8e05cc048865444a97ba9187e49d60b0fa8
Author: Sean B. Palmer <[email protected]>
AuthorDate: Fri Jan 23 19:50:33 2026 +0000

    Prevent events from being double encoded in the audit logs
---
 atr/loggers.py | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/atr/loggers.py b/atr/loggers.py
index 55b2b50..6366d73 100644
--- a/atr/loggers.py
+++ b/atr/loggers.py
@@ -17,6 +17,7 @@
 
 from __future__ import annotations
 
+import json
 import logging
 import logging.handlers
 import queue
@@ -47,6 +48,7 @@ def create_json_formatter(
     return structlog.stdlib.ProcessorFormatter(
         processors=[
             structlog.stdlib.ProcessorFormatter.remove_processors_meta,
+            _parse_json_event,
             structlog.processors.JSONRenderer(),
         ],
         foreign_pre_chain=list(shared_processors),
@@ -98,3 +100,19 @@ def shared_processors() -> list[structlog.types.Processor]:
         structlog.processors.StackInfoRenderer(),
         structlog.processors.UnicodeDecoder(),
     ]
+
+
+def _parse_json_event(
+    _logger: structlog.types.WrappedLogger,
+    _method_name: str,
+    event_dict: structlog.types.EventDict,
+) -> structlog.types.EventDict:
+    if event_dict.get("logger") != "atr.storage.audit":
+        return event_dict
+    event = event_dict.get("event")
+    if isinstance(event, str) and event.startswith("{"):
+        try:
+            event_dict["event"] = json.loads(event)
+        except json.JSONDecodeError:
+            pass
+    return event_dict


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to