Add logging and request limits
This commit is contained in:
+34
-3
@@ -1,6 +1,12 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use tokio::net::TcpListener;
|
||||
use tower_http::limit::RequestBodyLimitLayer;
|
||||
use tower_http::trace::TraceLayer;
|
||||
use tracing::info;
|
||||
use tracing_subscriber::layer::SubscriberExt;
|
||||
use tracing_subscriber::util::SubscriberInitExt;
|
||||
use tracing_subscriber::EnvFilter;
|
||||
|
||||
use doctate_server::config::Config;
|
||||
|
||||
@@ -9,10 +15,35 @@ async fn main() {
|
||||
dotenvy::dotenv().ok();
|
||||
let config = Arc::new(Config::from_env());
|
||||
|
||||
let addr = format!("0.0.0.0:{}", config.server_port);
|
||||
println!("Server starting on {addr}");
|
||||
// Logging: stdout + daily rotating log files.
|
||||
let env_filter = EnvFilter::try_new(&config.log_level)
|
||||
.unwrap_or_else(|_| EnvFilter::new("info"));
|
||||
|
||||
let file_appender = tracing_appender::rolling::daily(&config.log_path, "recorder.log");
|
||||
let (file_writer, _guard) = tracing_appender::non_blocking(file_appender);
|
||||
|
||||
tracing_subscriber::registry()
|
||||
.with(env_filter)
|
||||
.with(
|
||||
tracing_subscriber::fmt::layer()
|
||||
.with_target(false)
|
||||
.with_writer(std::io::stdout),
|
||||
)
|
||||
.with(
|
||||
tracing_subscriber::fmt::layer()
|
||||
.with_target(false)
|
||||
.with_ansi(false)
|
||||
.with_writer(file_writer),
|
||||
)
|
||||
.init();
|
||||
|
||||
let addr = format!("0.0.0.0:{}", config.server_port);
|
||||
info!(port = config.server_port, "Server starting");
|
||||
|
||||
let app = doctate_server::create_router(config)
|
||||
.layer(TraceLayer::new_for_http())
|
||||
.layer(RequestBodyLimitLayer::new(50 * 1024 * 1024)); // 50 MB
|
||||
|
||||
let app = doctate_server::create_router(config);
|
||||
let listener = TcpListener::bind(&addr).await.unwrap();
|
||||
axum::serve(listener, app).await.unwrap();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user