如何记录 Actix-Web 中的所有请求?

All*_*n K 11 rust actix-web

有没有办法记录 actix-web 收到的所有请求,无论端点是否存在?

看来我需要为此使用中间件,这是推荐的方法吗?

kmd*_*eko 9

有日志记录中间件可作为以下部分的一部分actix_webactix_web::middleware::Logger

Middleware用于记录对终端的请求和响应信息。Logger中间件使用标准log板条箱来记录信息。

每个请求都会调用中间件(只要没有其他中间件或路由事先处理它),因此将其放在App顶层应该会获取所有请求,无论端点是否存在。

use actix_web::{middleware::Logger, App};

let app = App::new()
    .wrap(Logger::default())
    // ...
Run Code Online (Sandbox Code Playgroud)

  • 您还需要启用日志记录实现: `env_logger::init_from_env(env_logger::Env::new().default_filter_or("info"));` (3认同)