diff --git a/src/main.rs b/src/main.rs index 49ceb1b7cbebfb73c314841c6845a6d0ccdfa9a9..a4f3754ab26c9ab557e5bf80c2dbda40d7cb29c0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -32,10 +32,10 @@ use tower::ServiceBuilder; use tower_http::{ cors::{self, CorsLayer}, - trace::TraceLayer, + trace::{DefaultOnFailure, TraceLayer}, ServiceBuilderExt as _, }; -use tracing::{debug, error, info, warn}; +use tracing::{debug, error, info, warn, Level}; use tracing_subscriber::{prelude::*, EnvFilter}; use tokio::sync::oneshot::Sender; @@ -186,15 +186,17 @@ async fn run_server() -> io::Result<()> { .sensitive_headers([header::AUTHORIZATION]) .layer(axum::middleware::from_fn(spawn_task)) .layer( - TraceLayer::new_for_http().make_span_with(|request: &http::Request<_>| { - let path = if let Some(path) = request.extensions().get::<MatchedPath>() { - path.as_str() - } else { - request.uri().path() - }; - - tracing::info_span!("http_request", %path) - }), + TraceLayer::new_for_http() + .make_span_with(|request: &http::Request<_>| { + let path = if let Some(path) = request.extensions().get::<MatchedPath>() { + path.as_str() + } else { + request.uri().path() + }; + + tracing::info_span!("http_request", %path) + }) + .on_failure(DefaultOnFailure::new().level(Level::INFO)), ) .layer(axum::middleware::from_fn(unrecognized_method)) .layer(