From 77781d5c4d71839cf1b5bb769066f24b47ab6994 Mon Sep 17 00:00:00 2001 From: Joe Knapper Date: Wed, 8 Jul 2026 13:41:27 +0100 Subject: [PATCH] Add invocation ID and logger name to JSON log Update typehint Update docstring --- src/openflexure_microscope_server/logging.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/openflexure_microscope_server/logging.py b/src/openflexure_microscope_server/logging.py index 7298985e..5ecd8a6d 100644 --- a/src/openflexure_microscope_server/logging.py +++ b/src/openflexure_microscope_server/logging.py @@ -56,6 +56,7 @@ def configure_logging(log_folder: str, debug: bool = False) -> None: ofm_format_str = "[%(asctime)s] [%(levelname)s] %(message)s" OFM_HANDLER.setFormatter(OFMLogFileFormatter(ofm_format_str)) OFM_HANDLER.addFilter(UvicornAccessFilter()) + OFM_HANDLER.addFilter(inject_invocation_id) OFM_HANDLER.level = root_logger.level root_logger.addHandler(OFM_HANDLER) @@ -156,7 +157,7 @@ class OFMHandler(logging.Handler): how many can be returned over HTTP. """ super().__init__(level=level) - self._log: list[str] = [] + self._log: list[dict] = [] self._max_logs = max_logs # start at -1 so first record is 0 self._running_counter = -1 @@ -170,8 +171,9 @@ class OFMHandler(logging.Handler): "level": record.levelname, "summary": msg.split("\n")[0], "message": msg, + "invocation_id": getattr(record, "invocation_id", None), + "logger": record.name, "sequence": self._running_counter, - "expanded": False, } def append_record(self, record: logging.LogRecord) -> None: @@ -199,7 +201,10 @@ class OFMHandler(logging.Handler): @property def log_history(self) -> list[dict]: - """Return the log history up to the maximum number of logs.""" + """Return the log history up to the maximum number of logs. + + Order is reversed so most recent logs are at the top. + """ return list(reversed(self._log))