Skip to content

Commit

Permalink
chore(core): log request uri with response
Browse files Browse the repository at this point in the history
  • Loading branch information
rudoi committed May 28, 2024
1 parent 7b9cdf3 commit 1a973ff
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 7 deletions.
12 changes: 8 additions & 4 deletions birdie/src-tauri/src/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,14 @@ use directories_next::BaseDirs;
use parking_lot::RwLock;
use tokio::sync::mpsc;
use tower_http::trace::TraceLayer;
use tracing::{debug, info, warn};
use tracing::{error, Span};
use tracing::{info, warn};

use ethos_core::types::config::AppConfig;
use ethos_core::types::repo::RepoStatus;
use ethos_core::worker::RepoWorker;

use ethos_core::middleware::uri::{uri_passthrough, RequestUri};
#[cfg(windows)]
use {crate::DEFAULT_DRIVE_MOUNT, ethos_core::utils, std::path::Path};

Expand Down Expand Up @@ -112,18 +113,21 @@ impl Server {
}
}

let app = crate::router(shared_state.clone())?.layer(
let app = crate::router(shared_state.clone())?
.layer(axum::middleware::from_fn(uri_passthrough))
.layer(
TraceLayer::new_for_http()
.on_request(|request: &Request<Body>, _span: &Span| {
info!(method = %request.method(), path = %request.uri().path(), "request");
})
.on_response(|response: &Response, latency: Duration, _span: &Span| {
let path = response.extensions().get::<RequestUri>().map(|r| r.0.path()).unwrap_or("unknown");
match response.status() {
StatusCode::OK => {
debug!(status = %response.status(), latency = ?latency, "response");
info!(status = %response.status(), latency = ?latency, path, "response");
}
_ => {
warn!(status = %response.status(), latency = ?latency, "response");
warn!(status = %response.status(), latency = ?latency, path, "response");
}
}
}),
Expand Down
1 change: 1 addition & 0 deletions core/src/middleware/mod.rs
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
pub mod nonce;
pub mod uri;
16 changes: 16 additions & 0 deletions core/src/middleware/uri.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
use axum::body::Body;
use axum::http::{Request, Uri};
use axum::middleware::Next;
use axum::response::Response;

#[derive(Clone)]
pub struct RequestUri(pub Uri);

pub async fn uri_passthrough(request: Request<Body>, next: Next) -> Response {
let uri = request.uri().clone();

let mut response = next.run(request).await;
response.extensions_mut().insert(RequestUri(uri));

response
}
10 changes: 7 additions & 3 deletions friendshipper/src-tauri/src/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ use axum::http::{Request, StatusCode};
use axum::response::Response;
use config::Config;
use directories_next::BaseDirs;
use ethos_core::middleware::uri::{uri_passthrough, RequestUri};
use parking_lot::RwLock;
use tokio::sync::mpsc;
use tokio::sync::oneshot::error::RecvError;
Expand Down Expand Up @@ -167,18 +168,21 @@ impl Server {
}
}

let app = crate::router(shared_state.clone())?.layer(
let app = crate::router(shared_state.clone())?
.layer(axum::middleware::from_fn(uri_passthrough))
.layer(
TraceLayer::new_for_http()
.on_request(|request: &Request<Body>, _span: &Span| {
info!(method = %request.method(), path = %request.uri().path(), "request");
})
.on_response(|response: &Response, latency: Duration, _span: &Span| {
let path = response.extensions().get::<RequestUri>().map(|r| r.0.path()).unwrap_or("unknown");
match response.status() {
StatusCode::OK => {
debug!(status = %response.status(), latency = ?latency, "response");
info!(status = %response.status(), latency = ?latency, path, "response");
}
_ => {
warn!(status = %response.status(), latency = ?latency, "response");
warn!(status = %response.status(), latency = ?latency, path, "response");
}
}
}),
Expand Down

0 comments on commit 1a973ff

Please sign in to comment.