Middleware de journalisation

La journalisation joue un rôle essentiel dans les applications web, permettant de :

  • Fournir des détails sur le traitement des requêtes pour suivre le comportement de l'application
  • Faciliter le dépannage et le débogage, particulièrement en environnement de production
  • Surveiller les performances et l'utilisation des ressources
  • Enregistrer les modèles d'accès utilisateurs et les anomalies système
  • Satisfaire aux exigences d'audit de sécurité et de conformité

Salvo propose un middleware basique de fonctionnalité de journal. Si le middleware est ajouté directement à un Router, il ne pourra pas capturer les erreurs 404 retournées quand aucun Router ne correspond. Il est recommandé de l'ajouter au Service.

Exemple de code

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