2 stable releases

2.0.0 Mar 14, 2022
1.0.0 May 15, 2021

#145 in #logging-tracing

MIT license

7KB
66 lines

tracing-actix-web2

Rust tracing adapter for Actix Web


This crate aims to bridge tracing and actix-web by automatically populating data from the HttpRequest in the tracing span.

This crate is an alternative to tracing_actix_web and was created to add the following two features.

Request Logging

This crate will log every request made to the HTTP server. These logs are only be visible if the log level is set to trace. This can be done by setting the RUST_LOG environment varible to tracing_actix_web2=trace.

X-Request-ID Header

This crate will generate a UUID for each HTTP request and include it in the span along with the X-Request-ID HTTP header.

Install

Add tracing-actix-web2 to your dependencies:

[dependencies]
# ...
actix-web = "3.3.2"
tracing-actix-web2 = "1.0.0"

Usage

use actix_web::{App, web, HttpServer};
use tracing_actix_web2::Tracer;

fn main() {
    // Init your `tracing` subscriber here!

    let server = HttpServer::new(|| {
        App::new()
            // Mount `Tracer` as a middleware
            .wrap(Tracer)
            .service( /*  */ )
    });
}

For a full example check out this example application.

Dependencies

~15–26MB
~441K SLoC