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