From 0350c80768e074e40f0980d0ce0dc031e013e64d Mon Sep 17 00:00:00 2001 From: hemal9102 <157049718+hemal9102@users.noreply.github.com> Date: Thu, 28 May 2026 15:42:25 +0530 Subject: [PATCH] Refactor RedactingLogMiddleware class Refactor RedactingLogMiddleware to streamline logging process. --- recipes/fastapi_middleware.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 recipes/fastapi_middleware.py diff --git a/recipes/fastapi_middleware.py b/recipes/fastapi_middleware.py new file mode 100644 index 0000000..77de304 --- /dev/null +++ b/recipes/fastapi_middleware.py @@ -0,0 +1,20 @@ +import logging +from typing import Awaitable, Callable + +from fastapi import Request, Response +from starlette.middleware.base import BaseHTTPMiddleware + +from redactkit.url_query import redact_url_query + +logger = logging.getLogger(__name__) + + +class RedactingLogMiddleware(BaseHTTPMiddleware): + async def dispatch( + self, request: Request, call_next: Callable[[Request], Awaitable[Response]] + ) -> Response: + raw_url = str(request.url) + redacted_url = redact_url_query(raw_url) + logger.info(f"Incoming request: {request.method} {redacted_url}") + + return await call_next(request)