Skip to content

Commit a206737

Browse files
committed
feat: [#468] add custom request log
``` 2024-02-12T18:24:13.404193511+00:00 [API][INFO] request; method=GET uri=/v1/about/license request_id=a5030c7a-5302-49d4-8e66-f0f0ab0e3ce3 2024-02-12T18:24:13.404380120+00:00 [API][INFO] response; latency=0 status=200 OK request_id=a5030c7a-5302-49d4-8e66-f0f0ab0e3ce3 ``` Add - request id - uri - method
1 parent 91f818e commit a206737

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

src/web/api/server/v1/routes.rs

+15-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use tower_http::compression::CompressionLayer;
1414
use tower_http::cors::CorsLayer;
1515
use tower_http::propagate_header::PropagateHeaderLayer;
1616
use tower_http::request_id::{MakeRequestId, RequestId, SetRequestIdLayer};
17-
use tower_http::trace::{DefaultMakeSpan, DefaultOnRequest, TraceLayer};
17+
use tower_http::trace::{DefaultMakeSpan, TraceLayer};
1818
use tracing::{Level, Span};
1919
use uuid::Uuid;
2020

@@ -62,7 +62,19 @@ pub fn router(app_data: Arc<AppData>) -> Router {
6262
.layer(
6363
TraceLayer::new_for_http()
6464
.make_span_with(DefaultMakeSpan::new().level(Level::INFO))
65-
.on_request(DefaultOnRequest::new().level(Level::INFO))
65+
.on_request(|request: &Request<axum::body::Body>, _span: &Span| {
66+
let method = request.method().to_string();
67+
let uri = request.uri().to_string();
68+
let request_id = request
69+
.headers()
70+
.get("x-request-id")
71+
.map(|v| v.to_str().unwrap_or_default())
72+
.unwrap_or_default();
73+
74+
tracing::span!(
75+
target: "API",
76+
tracing::Level::INFO, "request", method = %method, uri = %uri, request_id = %request_id);
77+
})
6678
.on_response(|response: &Response, latency: Duration, _span: &Span| {
6779
let status_code = response.status();
6880
let request_id = response
@@ -74,7 +86,7 @@ pub fn router(app_data: Arc<AppData>) -> Router {
7486

7587
tracing::span!(
7688
target: "API",
77-
tracing::Level::INFO, "finished processing request", latency = %latency_ms, status = %status_code, request_id = %request_id);
89+
tracing::Level::INFO, "response", latency = %latency_ms, status = %status_code, request_id = %request_id);
7890
}),
7991
)
8092
}

0 commit comments

Comments
 (0)