mirror of
https://github.com/actix/actix-extras.git
synced 2025-02-23 19:03:03 +01:00
Bound type-param of RootSpanBuilder::on_request_end (#93)
This commit is contained in:
parent
c95a781204
commit
8e5b09b379
12
src/lib.rs
12
src/lib.rs
@ -97,6 +97,7 @@
|
|||||||
//! We could add a `client_id` property to the root span using a custom builder, `DomainRootSpanBuilder`:
|
//! We could add a `client_id` property to the root span using a custom builder, `DomainRootSpanBuilder`:
|
||||||
//!
|
//!
|
||||||
//! ```rust
|
//! ```rust
|
||||||
|
//! use actix_web::body::MessageBody;
|
||||||
//! use actix_web::dev::{ServiceResponse, ServiceRequest};
|
//! use actix_web::dev::{ServiceResponse, ServiceRequest};
|
||||||
//! use actix_web::Error;
|
//! use actix_web::Error;
|
||||||
//! use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder};
|
//! use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder};
|
||||||
@ -110,7 +111,7 @@
|
|||||||
//! tracing::info_span!("Request", client_id)
|
//! tracing::info_span!("Request", client_id)
|
||||||
//! }
|
//! }
|
||||||
//!
|
//!
|
||||||
//! fn on_request_end<B>(_span: Span, _outcome: &Result<ServiceResponse<B>, Error>) {}
|
//! fn on_request_end<B: MessageBody>(_span: Span, _outcome: &Result<ServiceResponse<B>, Error>) {}
|
||||||
//! }
|
//! }
|
||||||
//!
|
//!
|
||||||
//! let custom_middleware = TracingLogger::<DomainRootSpanBuilder>::new();
|
//! let custom_middleware = TracingLogger::<DomainRootSpanBuilder>::new();
|
||||||
@ -123,6 +124,7 @@
|
|||||||
//! We can do better!
|
//! We can do better!
|
||||||
//!
|
//!
|
||||||
//! ```rust
|
//! ```rust
|
||||||
|
//! use actix_web::body::MessageBody;
|
||||||
//! use actix_web::dev::{ServiceResponse, ServiceRequest};
|
//! use actix_web::dev::{ServiceResponse, ServiceRequest};
|
||||||
//! use actix_web::Error;
|
//! use actix_web::Error;
|
||||||
//! use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder};
|
//! use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder};
|
||||||
@ -136,7 +138,7 @@
|
|||||||
//! tracing_actix_web::root_span!(request, client_id)
|
//! tracing_actix_web::root_span!(request, client_id)
|
||||||
//! }
|
//! }
|
||||||
//!
|
//!
|
||||||
//! fn on_request_end<B>(span: Span, outcome: &Result<ServiceResponse<B>, Error>) {
|
//! fn on_request_end<B: MessageBody>(span: Span, outcome: &Result<ServiceResponse<B>, Error>) {
|
||||||
//! DefaultRootSpanBuilder::on_request_end(span, outcome);
|
//! DefaultRootSpanBuilder::on_request_end(span, outcome);
|
||||||
//! }
|
//! }
|
||||||
//! }
|
//! }
|
||||||
@ -155,6 +157,7 @@
|
|||||||
//! the span level:
|
//! the span level:
|
||||||
//!
|
//!
|
||||||
//! ```rust
|
//! ```rust
|
||||||
|
//! use actix_web::body::MessageBody;
|
||||||
//! use actix_web::dev::{ServiceResponse, ServiceRequest};
|
//! use actix_web::dev::{ServiceResponse, ServiceRequest};
|
||||||
//! use actix_web::Error;
|
//! use actix_web::Error;
|
||||||
//! use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder, Level};
|
//! use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder, Level};
|
||||||
@ -172,7 +175,7 @@
|
|||||||
//! tracing_actix_web::root_span!(level = level, request)
|
//! tracing_actix_web::root_span!(level = level, request)
|
||||||
//! }
|
//! }
|
||||||
//!
|
//!
|
||||||
//! fn on_request_end<B>(span: Span, outcome: &Result<ServiceResponse<B>, Error>) {
|
//! fn on_request_end<B: MessageBody>(span: Span, outcome: &Result<ServiceResponse<B>, Error>) {
|
||||||
//! DefaultRootSpanBuilder::on_request_end(span, outcome);
|
//! DefaultRootSpanBuilder::on_request_end(span, outcome);
|
||||||
//! }
|
//! }
|
||||||
//! }
|
//! }
|
||||||
@ -187,6 +190,7 @@
|
|||||||
//! to your root span as it becomes available:
|
//! to your root span as it becomes available:
|
||||||
//!
|
//!
|
||||||
//! ```rust
|
//! ```rust
|
||||||
|
//! use actix_web::body::MessageBody;
|
||||||
//! use actix_web::dev::{ServiceResponse, ServiceRequest};
|
//! use actix_web::dev::{ServiceResponse, ServiceRequest};
|
||||||
//! use actix_web::{Error, HttpResponse};
|
//! use actix_web::{Error, HttpResponse};
|
||||||
//! use tracing_actix_web::{RootSpan, DefaultRootSpanBuilder, RootSpanBuilder};
|
//! use tracing_actix_web::{RootSpan, DefaultRootSpanBuilder, RootSpanBuilder};
|
||||||
@ -218,7 +222,7 @@
|
|||||||
//! )
|
//! )
|
||||||
//! }
|
//! }
|
||||||
//!
|
//!
|
||||||
//! fn on_request_end<B>(span: Span, response: &Result<ServiceResponse<B>, Error>) {
|
//! fn on_request_end<B: MessageBody>(span: Span, response: &Result<ServiceResponse<B>, Error>) {
|
||||||
//! DefaultRootSpanBuilder::on_request_end(span, response);
|
//! DefaultRootSpanBuilder::on_request_end(span, response);
|
||||||
//! }
|
//! }
|
||||||
//! }
|
//! }
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use crate::root_span;
|
use crate::root_span;
|
||||||
|
use actix_web::body::MessageBody;
|
||||||
use actix_web::dev::{ServiceRequest, ServiceResponse};
|
use actix_web::dev::{ServiceRequest, ServiceResponse};
|
||||||
use actix_web::http::StatusCode;
|
use actix_web::http::StatusCode;
|
||||||
use actix_web::{Error, ResponseError};
|
use actix_web::{Error, ResponseError};
|
||||||
@ -10,7 +11,7 @@ use tracing::Span;
|
|||||||
/// [`TracingLogger`]: crate::TracingLogger
|
/// [`TracingLogger`]: crate::TracingLogger
|
||||||
pub trait RootSpanBuilder {
|
pub trait RootSpanBuilder {
|
||||||
fn on_request_start(request: &ServiceRequest) -> Span;
|
fn on_request_start(request: &ServiceRequest) -> Span;
|
||||||
fn on_request_end<B>(span: Span, outcome: &Result<ServiceResponse<B>, Error>);
|
fn on_request_end<B: MessageBody>(span: Span, outcome: &Result<ServiceResponse<B>, Error>);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The default [`RootSpanBuilder`] for [`TracingLogger`].
|
/// The default [`RootSpanBuilder`] for [`TracingLogger`].
|
||||||
@ -40,7 +41,7 @@ impl RootSpanBuilder for DefaultRootSpanBuilder {
|
|||||||
root_span!(level = crate::Level::INFO, request)
|
root_span!(level = crate::Level::INFO, request)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn on_request_end<B>(span: Span, outcome: &Result<ServiceResponse<B>, Error>) {
|
fn on_request_end<B: MessageBody>(span: Span, outcome: &Result<ServiceResponse<B>, Error>) {
|
||||||
match &outcome {
|
match &outcome {
|
||||||
Ok(response) => {
|
Ok(response) => {
|
||||||
if let Some(error) = response.response().error() {
|
if let Some(error) = response.response().error() {
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
/// The first argument passed to `root_span!` must be a reference to an [`actix_web::dev::ServiceRequest`].
|
/// The first argument passed to `root_span!` must be a reference to an [`actix_web::dev::ServiceRequest`].
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust
|
||||||
|
/// use actix_web::body::MessageBody;
|
||||||
/// use actix_web::dev::{ServiceResponse, ServiceRequest};
|
/// use actix_web::dev::{ServiceResponse, ServiceRequest};
|
||||||
/// use actix_web::Error;
|
/// use actix_web::Error;
|
||||||
/// use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder, root_span};
|
/// use tracing_actix_web::{TracingLogger, DefaultRootSpanBuilder, RootSpanBuilder, root_span};
|
||||||
@ -26,7 +27,7 @@
|
|||||||
/// root_span!(request)
|
/// root_span!(request)
|
||||||
/// }
|
/// }
|
||||||
///
|
///
|
||||||
/// fn on_request_end<B>(span: Span, outcome: &Result<ServiceResponse<B>, Error>) {
|
/// fn on_request_end<B: MessageBody>(span: Span, outcome: &Result<ServiceResponse<B>, Error>) {
|
||||||
/// DefaultRootSpanBuilder::on_request_end(span, outcome);
|
/// DefaultRootSpanBuilder::on_request_end(span, outcome);
|
||||||
/// }
|
/// }
|
||||||
/// }
|
/// }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user