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

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

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

make_req_fns! {
    info_request, tracing::Level::INFO,
    warn_request, tracing::Level::WARN,
    error_request, tracing::Level::ERROR
}

#[inline]
pub fn debug_request<A>(req: &http::Request<A>) -> tracing::Span {
    tracing::span!(
        tracing::Level::DEBUG,
        "request",
        method = ?req.method(),
        uri = ?req.uri(),
        version = ?req.version(),
    )
}

#[inline]
pub fn trace_request<A>(req: &http::Request<A>) -> tracing::Span {
    tracing::span!(
        tracing::Level::TRACE,
        "request",
        method = ?req.method(),
        uri = ?req.uri(),
        version = ?req.version(),
        headers = ?req.headers(),
    )
}