mirror of
https://github.com/DefectingCat/rua-list
synced 2025-07-15 16:51:31 +00:00
Add log middleware
This commit is contained in:
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -996,6 +996,7 @@ dependencies = [
|
||||
"serde_json",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
"tower",
|
||||
"wildmatch",
|
||||
]
|
||||
|
||||
|
@ -18,3 +18,4 @@ chrono = "0.4.24"
|
||||
axum = "0.6.15"
|
||||
reqwest = "0.11.16"
|
||||
wildmatch = "2.1.1"
|
||||
tower = "0.4.13"
|
||||
|
@ -1,11 +1,13 @@
|
||||
use std::{net::SocketAddr, process::exit};
|
||||
|
||||
use anyhow::Result;
|
||||
use axum::{http, response, routing::get, Router, Server};
|
||||
use axum::{http, middleware, response, routing::get, Router, Server};
|
||||
use log::{error, info};
|
||||
use tower::ServiceBuilder;
|
||||
|
||||
use crate::{
|
||||
config::Config,
|
||||
middlewares::logger_middleware,
|
||||
routes::messages::{match_check_get, match_check_post},
|
||||
};
|
||||
|
||||
@ -15,6 +17,7 @@ mod consts;
|
||||
mod error;
|
||||
mod http_client;
|
||||
mod logger;
|
||||
mod middlewares;
|
||||
mod routes;
|
||||
|
||||
#[tokio::main]
|
||||
@ -39,6 +42,7 @@ async fn main() -> Result<()> {
|
||||
.route("/smsGBK.aspx", get(match_check_get).post(match_check_post));
|
||||
let app = Router::new()
|
||||
.merge(message_routes)
|
||||
.layer(ServiceBuilder::new().layer(middleware::from_fn(logger_middleware)))
|
||||
.fallback(fallback)
|
||||
.with_state(config.list);
|
||||
|
||||
@ -56,7 +60,7 @@ async fn main() -> Result<()> {
|
||||
.await
|
||||
{
|
||||
Ok(()) => {
|
||||
info!("Listen at {}", &addr);
|
||||
info!("Server shutdown");
|
||||
}
|
||||
Err(err) => {
|
||||
error!("Can not start server {}", err);
|
||||
|
24
src/middlewares.rs
Normal file
24
src/middlewares.rs
Normal file
@ -0,0 +1,24 @@
|
||||
use std::fmt::Debug;
|
||||
|
||||
use axum::{http::Request, middleware::Next, response::Response};
|
||||
use log::{debug, info};
|
||||
|
||||
pub async fn logger_middleware<B>(request: Request<B>, next: Next<B>) -> Response
|
||||
where
|
||||
B: Debug,
|
||||
{
|
||||
let host = if let Some(host) = request.headers().get("host") {
|
||||
host.to_str().unwrap_or("Unknown")
|
||||
} else {
|
||||
"Unknown"
|
||||
};
|
||||
info!(
|
||||
"{} - {} - {:?} - {:?}",
|
||||
request.method(),
|
||||
request.uri(),
|
||||
request.version(),
|
||||
host
|
||||
);
|
||||
debug!("{:?}", request);
|
||||
next.run(request).await
|
||||
}
|
Reference in New Issue
Block a user