温馨提示×

axum rust如何进行日志记录

小樊
94
2024-11-25 09:48:40
栏目: 编程语言

在Axum Rust中,您可以使用logenv_logger这两个库进行日志记录。首先,您需要在您的Cargo.toml文件中添加这两个库作为依赖项:

[dependencies]
log = "0.4"
env_logger = "0.9"

接下来,您可以在您的Axum Rust应用程序中设置和使用日志记录器。以下是一个简单的示例:

use axum::{body::Body, Response, Server};
use log::{info, error};
use env_logger::Env;

async fn handle(req: Request<Body>) -> Result<Response<Body>, axum::Error> {
    // 初始化日志记录器
    env_logger::from_env(Env::default().default_filter_or("info")).init();

    // 记录请求信息
    info!("Received request: {:?}", req);

    // 处理请求并记录响应信息
    let response = Response::new(Body::from("Hello, world!"));
    info!("Sent response: {:?}", response);

    Ok(response)
}

#[tokio::main]
async fn main() {
    // 创建Axum服务器
    let server = Server::bind(&std::net::SocketAddr::from(([127, 0, 0, 1], 3000))).serve(handle);

    // 运行服务器并记录启动信息
    info!("Server is running on http://127.0.0.1:3000");

    if let Err(e) = server.await {
        error!("Server error: {:?}", e);
    }
}

在这个示例中,我们首先导入了logenv_logger库。然后,在handle函数中,我们使用env_logger::from_env函数初始化日志记录器,并使用默认的环境变量设置日志级别。接下来,我们使用info!宏记录请求和响应信息。最后,在main函数中,我们记录服务器启动信息。

您可以根据需要调整日志记录器的配置,例如更改日志级别或格式。更多关于logenv_logger库的信息,请参阅它们的文档:

0