Adds an unique identifiert to fastapi requests
MIT License
This library provides a way to identify all log entries that belong to a single request.
pip install sag-py-fastapi-request-id
Add this middleware so that the request ids are generated:
from sag_py_fastapi_request_id.request_context_middleware import RequestContextMiddleware
from fastapi import FastAPI
app = FastAPI(...)
app.add_middleware(RequestContextMiddleware)
The request id can be accessed over the context
from sag_py_fastapi_request_id.request_context import get_request_id as get_request_id_from_context
request_id = get_request_id_from_context()
This works in async calls but not in sub threads (without additional changes).
See:
It is possible to log the request id by adding a filter.
import logging
from sag_py_fastapi_request_id.request_context_logging_filter import RequestContextLoggingFilter
console_handler = logging.StreamHandler(sys.stdout)
console_handler.addFilter(RequestContextLoggingFilter())
The filter adds the field request_id if it has a value in the context.
Just install vscode with dev containers extension. All required extensions and configurations are prepared automatically.