Промежуточное ПО для логирования

Логирование играет ключевую роль в веб-приложениях, обеспечивая следующие возможности:

  • Подробная информация о процессе обработки запросов для отслеживания поведения приложения
  • Помощь в диагностике проблем и отладке, особенно в производственной среде
  • Мониторинг производительности приложения и использования ресурсов
  • Фиксация шаблонов пользовательских посещений и системных аномалий
  • Соответствие требованиям аудита безопасности и нормативным стандартам

Salvo предоставляет базовое промежуточное ПО для функций логирования. Если промежуточное ПО добавлено непосредственно в 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;
}