Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions api/src/middleware/request_context_middleware.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import logging
import time
from starlette.types import ASGIApp, Receive, Scope, Send

from middleware.request_context import RequestContext, _request_context
from utils.logger import HttpRequest, API_ACCESS_LOG
from utils.logger import HttpRequest, API_ACCESS_LOG, get_logger


class RequestContextMiddleware:
Expand All @@ -12,7 +11,7 @@ class RequestContextMiddleware:
"""

def __init__(self, app: ASGIApp) -> None:
self.logger = logging.getLogger(API_ACCESS_LOG)
self.logger = get_logger(API_ACCESS_LOG)
self.app = app

@staticmethod
Expand Down Expand Up @@ -63,8 +62,17 @@ def log_api_access(
"""
latency = time.time() - start_time
request = self.create_http_request(scope, request_context, status_code, content_length, latency)
headers = {k.decode().lower(): v.decode() for k, v in scope.get("headers", [])}
headers_to_log = {
k: headers.get(k, "")
for k in [
"origin",
"referer",
]
if headers.get(k)
}
self.logger.info(
"API Access Log",
{"user_id": request_context.user_id if request_context.user_id else "", "headers": headers_to_log},
extra={
"context": {
"http_request": request,
Expand Down
Loading