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> {
6 let method = req.method().clone();
7 let path = req.path().to_string();
8 let start = std::time::Instant::now();
9 let resp = next.run(req).await;
10 let elapsed = start.elapsed();
11 match &resp {
12 Ok(r) => log::info!("{method} {path} -> {} ({elapsed:?})", r.status),
13 Err(e) => log::warn!("{method} {path} -> error: {e}"),
14 }
15 resp
16}