Skip to main content

rustio_admin/middleware/
logger.rs

1use crate::error::Result;
2use crate::http::{Request, Response};
3use crate::router::Next;
4
5// public:
6pub 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}