use tower_http::classify::ServerErrorsAsFailures;
use tower_http::classify::SharedClassifier;
use tower_http::trace::{MakeSpan, TraceLayer};
#[derive(Clone, Debug)]
pub struct ModoMakeSpan;
impl<B> MakeSpan<B> for ModoMakeSpan {
fn make_span(&mut self, request: &http::Request<B>) -> tracing::Span {
tracing::info_span!(
"http_request",
method = %request.method(),
uri = %request.uri(),
version = ?request.version(),
tenant_id = tracing::field::Empty,
)
}
}
pub fn tracing() -> TraceLayer<SharedClassifier<ServerErrorsAsFailures>, ModoMakeSpan> {
TraceLayer::new_for_http().make_span_with(ModoMakeSpan)
}