unleash_edge_request_logger/
lib.rs1use axum::extract::Request;
2use axum::middleware::Next;
3use axum::response::Response;
4use http::{HeaderValue, header};
5use tracing::trace;
6
7pub async fn log_request_middleware(req: Request, next: Next) -> Response {
8 let uri = req.uri().clone();
9 let mut headers = req.headers().clone();
10 let method = req.method().clone();
11 headers.insert(
12 header::AUTHORIZATION,
13 headers
14 .get(header::AUTHORIZATION)
15 .map(|f| {
16 if f.is_empty() {
17 HeaderValue::from_str("AuthorizationEmpty").unwrap()
18 } else {
19 HeaderValue::from_str("***redacted***").unwrap()
20 }
21 })
22 .unwrap_or_else(|| HeaderValue::from_str("No authorization header").unwrap()),
23 );
24 trace!(
25 "Request: uri=[{}], method=[{}], headers=[{:?}]",
26 uri, method, headers
27 );
28 next.run(req).await
29}