ログミドルウェア

ログ記録はWebアプリケーションにおいて極めて重要な役割を果たします。主な利点は以下の通りです:

  • リクエスト処理プロセスの詳細情報を提供し、開発者がアプリケーションの動作を追跡するのに役立つ
  • 特に本番環境での問題調査とデバッグを支援
  • アプリケーションのパフォーマンスとリソース使用状況の監視
  • ユーザーアクセスパターンとシステム例外の記録
  • セキュリティ監査とコンプライアンス要件への対応

Salvoは基本的なログ機能を提供するミドルウェアを備えています。ミドルウェアを直接Routerに追加した場合、全てのRouterにマッチしない404エラーをキャッチできませんので、Serviceに追加することを推奨します。

サンプルコード

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