/* * Author: Ruben Fiszel * Copyright: Windmill Labs, Inc 2022 * This file and its contents are licensed under the AGPLv3 License. * Please see the included NOTICE for copyright information and * LICENSE-AGPL for a copy of the license. */ use ::tracing::{field, Span}; use hyper::Response; use tower_http::trace::{MakeSpan, OnResponse}; #[derive(Clone)] pub struct MyOnResponse {} impl OnResponse for MyOnResponse { fn on_response( self, response: &Response, latency: std::time::Duration, _span: &tracing::Span, ) { tracing::info!( latency = latency.as_millis(), status = response.status().as_u16(), "response" ) } } #[derive(Clone)] pub struct MyMakeSpan {} impl MakeSpan for MyMakeSpan { fn make_span(&mut self, request: &hyper::Request) -> Span { tracing::info_span!( "request", method = %request.method(), uri = %request.uri(), username = field::Empty, workspace_id = field::Empty, email = field::Empty, ) } }