Middleware di Logging

La registrazione dei log svolge un ruolo fondamentale nelle applicazioni web, in quanto permette di:

  • Fornire dettagli sul processo di gestione delle richieste, aiutando gli sviluppatori a tracciare il comportamento dell'applicazione
  • Facilitare la risoluzione di problemi e il debug, specialmente in ambienti di produzione
  • Monitorare le prestazioni dell'applicazione e l'utilizzo delle risorse
  • Registrare modelli di accesso degli utenti e anomalie del sistema
  • Soddisfare i requisiti di audit di sicurezza e conformità

Salvo offre un middleware con funzionalità di base per il logging. Se il middleware viene aggiunto direttamente a un Router, non sarà in grado di catturare gli errori 404 restituiti quando nessun Router corrisponde alla richiesta. Si consiglia pertanto di aggiungerlo al Service.

Codice di esempio

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;
}