use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt}; use crate::config::Config; mod config; #[tokio::main] #[tracing::instrument] async fn main() -> Result<(), main_error::MainError> { let _ = dotenvy::dotenv(); tracing_subscriber::registry() .with( tracing_subscriber::EnvFilter::try_from_default_env() .unwrap_or_else(|_| "unnamed_server=debug".into()), ) .with(tracing_subscriber::fmt::layer()) .init(); let config_file = std::env::args() .nth(1) .unwrap_or("/etc/unnamed_app.toml".to_string()); let (listener, router) = Config::new() .file(config_file)? .env("UNNAMED_")? .build() .await?; tracing::info!("Server listening on http://{}", listener.local_addr()?); axum::serve(listener, router).await.map_err(From::from) }