ログミドルウェア
ログ記録はWebアプリケーションにおいて極めて重要な役割を果たします。主な利点は以下の通りです:
- リクエスト処理プロセスの詳細情報を提供し、開発者がアプリケーションの動作を追跡するのに役立つ
- 特に本番環境での問題調査とデバッグを支援
- アプリケーションのパフォーマンスとリソース使用状況の監視
- ユーザーアクセスパターンとシステム例外の記録
- セキュリティ監査とコンプライアンス要件への対応
Salvoは基本的なログ機能を提供するミドルウェアを備えています。ミドルウェアを直接Router
に追加した場合、全てのRouter
にマッチしない404エラーをキャッチできませんので、Service
に追加することを推奨します。
サンプルコード
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;
}