feat: add logging
This commit is contained in:
parent
6e31804f19
commit
bc2b74c401
@ -11,11 +11,9 @@ shuttle-axum = "0.45.0"
|
|||||||
shuttle-runtime = "0.45.0"
|
shuttle-runtime = "0.45.0"
|
||||||
tokio = "1.28.2"
|
tokio = "1.28.2"
|
||||||
tower-http = { version = "0.5.2", features = ["fs", "cors"] }
|
tower-http = { version = "0.5.2", features = ["fs", "cors"] }
|
||||||
|
tracing = "0.1.40"
|
||||||
yew = "0.21.0"
|
yew = "0.21.0"
|
||||||
|
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
members = [
|
members = [".", "frontend"]
|
||||||
".",
|
|
||||||
"frontend",
|
|
||||||
]
|
|
||||||
|
32
src/main.rs
32
src/main.rs
@ -1,21 +1,29 @@
|
|||||||
use axum::{routing::get, Router};
|
use axum::{
|
||||||
use rand::seq::SliceRandom;
|
body::Body,
|
||||||
use tower_http::services::ServeDir;
|
http::Request,
|
||||||
use tower_http::cors::{Any,CorsLayer};
|
middleware::{self, Next},
|
||||||
|
response::Response,
|
||||||
|
routing::get,
|
||||||
|
Router,
|
||||||
|
};
|
||||||
use http::Method;
|
use http::Method;
|
||||||
|
use rand::seq::SliceRandom;
|
||||||
|
use std::net::SocketAddr;
|
||||||
|
use tower_http::cors::{Any, CorsLayer};
|
||||||
|
use tower_http::services::ServeDir;
|
||||||
|
use tracing::info;
|
||||||
|
|
||||||
#[shuttle_runtime::main]
|
#[shuttle_runtime::main]
|
||||||
async fn main() -> shuttle_axum::ShuttleAxum {
|
async fn main() -> shuttle_axum::ShuttleAxum {
|
||||||
|
|
||||||
let cors = CorsLayer::new()
|
let cors = CorsLayer::new()
|
||||||
.allow_origin(Any) // Allow all origins; adjust as necessary
|
.allow_origin(Any) // Allow all origins; adjust as necessary
|
||||||
.allow_methods(vec![Method::GET]) // Specify allowed methods
|
.allow_methods(vec![Method::GET]) // Specify allowed methods
|
||||||
.allow_headers(Any);
|
.allow_headers(Any);
|
||||||
|
|
||||||
let router = Router::new()
|
let router = Router::new()
|
||||||
// .route("/", get(hello_world))
|
|
||||||
.nest_service("/", ServeDir::new("frontend/dist"))
|
.nest_service("/", ServeDir::new("frontend/dist"))
|
||||||
.route("/word", get(word))
|
.route("/word", get(word))
|
||||||
|
.layer(middleware::from_fn(log_ip))
|
||||||
.layer(cors);
|
.layer(cors);
|
||||||
|
|
||||||
Ok(router.into())
|
Ok(router.into())
|
||||||
@ -26,6 +34,18 @@ async fn word() -> String {
|
|||||||
WORDS.choose(&mut rng).unwrap().to_string()
|
WORDS.choose(&mut rng).unwrap().to_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn log_ip(req: Request<Body>, next: Next) -> Response {
|
||||||
|
if let Some(addr) = req.extensions().get::<SocketAddr>() {
|
||||||
|
info!(
|
||||||
|
PATH = req.uri().path().to_string(),
|
||||||
|
IP = addr.ip().to_string()
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
info!(PATH = req.uri().path().to_string());
|
||||||
|
}
|
||||||
|
next.run(req).await
|
||||||
|
}
|
||||||
|
|
||||||
static WORDS: &[&str; 5921] = &[
|
static WORDS: &[&str; 5921] = &[
|
||||||
"aalen", "Aales", "aalst", "aalte", "Aarau", "Aaron", "Aasee", "Aases", "Abart", "abbat",
|
"aalen", "Aales", "aalst", "aalte", "Aarau", "Aaron", "Aasee", "Aases", "Abart", "abbat",
|
||||||
"Abbau", "Abbey", "abbog", "Abdul", "Abeba", "Abels", "Abend", "abgab", "Abgas", "abhob",
|
"Abbau", "Abbey", "abbog", "Abdul", "Abeba", "Abels", "Abend", "abgab", "Abgas", "abhob",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user