logging

class litestar.middleware.logging.LoggingMiddleware[source]

Bases: ASGIMiddleware

Logging middleware.

scopes: tuple[ScopeType, ...] = (ScopeType.HTTP,)

Scope types this middleware should be applied to

__init__(logger: logging.Logger | Logger | str | Callable[[], Logger], *, exclude: str | list[str] | None = None, exclude_opt_key: str | None = None, include_compressed_body: bool = False, request_cookies_to_obfuscate: Iterable[str] = ('session',), request_headers_to_obfuscate: Iterable[str] = ('Authorization', 'X-API-KEY'), response_cookies_to_obfuscate: Iterable[str] = ('session',), response_headers_to_obfuscate: Iterable[str] = ('Authorization', 'X-API-KEY'), request_log_message: str = 'HTTP Request', response_log_message: str = 'HTTP Response', request_log_fields: Sequence[RequestExtractorField] = ('path', 'method', 'content_type', 'query', 'path_params'), response_log_fields: Sequence[ResponseExtractorField] = ('status_code',), parse_body: bool = False, parse_query: bool = True, log_structured: bool = False) None[source]
async handle(scope: Scope, receive: Receive, send: Send, next_app: ASGIApp) None[source]

Handle ASGI call.

Parameters:
  • scope – The ASGI connection scope.

  • receive – The ASGI receive function.

  • send – The ASGI send function

  • next_app – The next ASGI application in the middleware stack to call

async log_request(scope: Scope, receive: Receive) None[source]

Extract request data and log the message.

Parameters:
  • scope – The ASGI connection scope.

  • receive – ASGI receive callable

Returns:

None

log_response(scope: Scope) None[source]

Extract the response data and log the message.

Parameters:

scope – The ASGI connection scope.

Returns:

None

log_message(values: dict[str, Any]) None[source]

Log a message.

Parameters:

values – Extract values to log.

Returns:

None

async extract_request_data(request: Request) dict[str, Any][source]

Create a dictionary of values for the message.

Parameters:

request – A Request instance.

Returns:

An dict.

extract_response_data(scope: Scope) dict[str, Any][source]

Extract data from the response.

Parameters:

scope – The ASGI connection scope.

Returns:

An dict.

create_send_wrapper(scope: Scope, send: Send) Send[source]

Create a send wrapper, which handles logging response data.

Parameters:
  • scope – The ASGI connection scope.

  • send – The ASGI send function.

Returns:

An ASGI send function.