Middleware de Registro (Logging)

El registro de logs desempeña un papel crucial en las aplicaciones web, permitiendo:

  • Proporcionar detalles del proceso de solicitudes para rastrear el comportamiento de la aplicación
  • Facilitar la resolución de problemas y depuración, especialmente en entornos de producción
  • Monitorear el rendimiento y uso de recursos de la aplicación
  • Registrar patrones de acceso de usuarios y excepciones del sistema
  • Cumplir con requisitos de auditoría de seguridad y normativas

Salvo ofrece un middleware básico de funcionalidad de Log. Si el middleware se añade directamente a un Router, no podrá capturar errores 404 cuando ninguna ruta coincida. Se recomienda agregarlo al Service.

Código de Ejemplo

main.rs
Cargo.toml
logging/src/main.rs
use salvo::logging::Logger;
use salvo::prelude::*;

#[handler]
async fn hello() -> &'static str {
    "Hello World"
}

#[tokio::main]
async fn main() {
    tracing_subscriber::fmt().init();

    let router = Router::new().get(hello);
    let service = Service::new(router).hoop(Logger::new());

    let acceptor = TcpListener::new("0.0.0.0:5800").bind().await;
    Server::new(acceptor).serve(service).await;
}