mirror of
https://github.com/bellingcat/auto-archiver-api.git
synced 2026-06-11 13:08:34 +03:00
20 lines
817 B
Python
20 lines
817 B
Python
|
|
from loguru import logger
|
|
from fastapi import Request
|
|
from app.shared.log import log_error
|
|
from app.web.utils.metrics import EXCEPTION_COUNTER
|
|
|
|
|
|
async def logging_middleware(request: Request, call_next):
|
|
try:
|
|
response = await call_next(request)
|
|
#TODO: use Origin to have summary prometheus metrics on where requests come from
|
|
# origin = request.headers.get("origin")
|
|
logger.info(f"{request.client.host}:{request.client.port} {request.method} {request.url._url} - HTTP {response.status_code}")
|
|
return response
|
|
except Exception as e:
|
|
EXCEPTION_COUNTER.labels(type=e.__class__.__name__).inc()
|
|
logger.info(f"{request.client.host}:{request.client.port} {request.method} {request.url._url} - {e.__class__.__name__} {e}")
|
|
log_error(e)
|
|
raise e
|