""" Per-request logging context. Carries the request id (the same one `RequestIDMiddleware` puts on the `X-Request-ID` header) into every log record via a ContextVar + logging.Filter, so a whole request's log lines can be grepped by one id — essential when watching the live API. """ import contextvars import logging # Default "-" so non-request logs (startup, background agents) still format cleanly. _request_id: contextvars.ContextVar[str] = contextvars.ContextVar("request_id", default="-") def set_request_id(request_id: str) -> None: _request_id.set(request_id or "-") def get_request_id() -> str: return _request_id.get() class RequestIdFilter(logging.Filter): """Injects `request_id` onto every LogRecord so the format string can use it.""" def filter(self, record: logging.LogRecord) -> bool: record.request_id = _request_id.get() return True