Rust API - Adicionando logs com rust - Part VIII
Nesse momento, nós vamos trabalhar diretamente na nossa main.rs chamando o nosso middleware Logger:
use actix_web::{
web,
App,
HttpServer,
middleware::Logger
};
E depois dentro da nossa função main, nós vamos chamar o nosso logger olhando para as requests que estamos chamando:
if std::env::var_os("RUST_LOG").is_none() {
std::env::set_var("RUST_LOG", "actix_web=info");
}
dotenv().ok();
env_logger::init();
E o nosso HttpServer, no final dele, terá um wrapper para observar as nossas requests:
HttpServer::new(move || {
App::new()
.app_data(web::Data::new(AppState { db: pool.clone() }))
.configure(services::config)
.wrap(Logger::default()) // <- aqui
})
.bind(("127.0.0.1", 8080))?
.run().await
O nosso arquivo todo vai ficar assim:
src/main.rs
mod services;
mod model;
mod schema;
use actix_web::{
web,
App,
HttpServer,
middleware::Logger
};
use dotenv::dotenv;
use sqlx::{ postgres::PgPoolOptions, Pool, Postgres };
pub struct AppState {
db: Pool<Postgres>,
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
if std::env::var_os("RUST_LOG").is_none() {
std::env::set_var("RUST_LOG", "actix_web=info");
}
dotenv().ok();
env_logger::init();
let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set");
let pool = match PgPoolOptions::new().max_connections(10).connect(&database_url).await {
Ok(pool) => {
println!("Connection DB resolved");
pool
}
Err(error) => {
println!("Failed to connect to the dabase: {:?}", error);
std::process::exit(1);
}
};
println!("Server started successfully");
HttpServer::new(move || {
App::new()
.app_data(web::Data::new(AppState { db: pool.clone() }))
.configure(services::config)
.wrap(Logger::default())
})
.bind(("127.0.0.1", 8080))?
.run().await
}
E se você rodar o healthchecker verá logs assim:
[2023-06-12T20:02:46Z INFO actix_web::middleware::logger] 127.0.0.1 "GET /api/healthchecker HTTP/1.1" 200 77 "-" "insomnia/2023.2.2" 0.000361
Bem, é isso, ao menos vou ficar por aqui kk Feliz por mim que conclui kk e se você gostou, feliz por ti que leu até aqui, grande abraço e até mais =]