rustio_admin/middleware/
logger.rs1use crate::error::Result;
2use crate::http::{Request, Response};
3use crate::router::Next;
4
5pub async fn logger(req: Request, next: Next) -> Result<Response> {
7 let method = req.method().clone();
8 let path = req.path().to_string();
9 let start = std::time::Instant::now();
10 let resp = next.run(req).await;
11 let elapsed = start.elapsed();
12 match &resp {
13 Ok(r) => log::info!("{method} {path} -> {} ({elapsed:?})", r.status),
14 Err(e) => log::warn!("{method} {path} -> error: {e}"),
15 }
16 resp
17}