Skip to main content

rustio_admin/middleware/
logger.rs

1use 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}