🛈 Note: This is pre-release documentation for the upcoming tracing 0.2.0 ecosystem.

For the release documentation, please see docs.rs, instead.

tracing_tower/
http.rs

1macro_rules! make_req_fns {
2    ($($name:ident, $level:expr),+) => {
3        $(
4            #[inline]
5            pub fn $name<A>(req: &http::Request<A>) -> tracing::Span {
6                tracing::span!(
7                    $level,
8                    "request",
9                    method = ?req.method(),
10                    uri = ?req.uri(),
11                )
12            }
13        )+
14    }
15}
16
17make_req_fns! {
18    info_request, tracing::Level::INFO,
19    warn_request, tracing::Level::WARN,
20    error_request, tracing::Level::ERROR
21}
22
23#[inline]
24pub fn debug_request<A>(req: &http::Request<A>) -> tracing::Span {
25    tracing::span!(
26        tracing::Level::DEBUG,
27        "request",
28        method = ?req.method(),
29        uri = ?req.uri(),
30        version = ?req.version(),
31    )
32}
33
34#[inline]
35pub fn trace_request<A>(req: &http::Request<A>) -> tracing::Span {
36    tracing::span!(
37        tracing::Level::TRACE,
38        "request",
39        method = ?req.method(),
40        uri = ?req.uri(),
41        version = ?req.version(),
42        headers = ?req.headers(),
43    )
44}