Changeset View
Changeset View
Standalone View
Standalone View
services/feature-flags/src/main.rs
use crate::database::DatabaseClient; | |||||
use crate::service::FeatureFlagsService; | |||||
use anyhow::Result; | use anyhow::Result; | ||||
use tracing::{info, Level}; | use tracing::Level; | ||||
use tracing_subscriber::EnvFilter; | use tracing_subscriber::EnvFilter; | ||||
pub mod config; | pub mod config; | ||||
pub mod constants; | pub mod constants; | ||||
pub mod database; | pub mod database; | ||||
pub mod service; | pub mod service; | ||||
fn configure_logging() -> Result<()> { | fn configure_logging() -> Result<()> { | ||||
let filter = EnvFilter::builder() | let filter = EnvFilter::builder() | ||||
.with_default_directive(Level::INFO.into()) | .with_default_directive(Level::INFO.into()) | ||||
.with_env_var(constants::LOG_LEVEL_ENV_VAR) | .with_env_var(constants::LOG_LEVEL_ENV_VAR) | ||||
.from_env_lossy(); | .from_env_lossy(); | ||||
let subscriber = tracing_subscriber::fmt().with_env_filter(filter).finish(); | let subscriber = tracing_subscriber::fmt().with_env_filter(filter).finish(); | ||||
tracing::subscriber::set_global_default(subscriber)?; | tracing::subscriber::set_global_default(subscriber)?; | ||||
Ok(()) | Ok(()) | ||||
} | } | ||||
#[tokio::main] | #[tokio::main] | ||||
async fn main() -> Result<()> { | async fn main() -> Result<()> { | ||||
config::parse_cmdline_args(); | config::parse_cmdline_args(); | ||||
configure_logging()?; | configure_logging()?; | ||||
let _aws_config = config::load_aws_config().await; | let aws_config = config::load_aws_config().await; | ||||
info!("Starting the service"); | let db = DatabaseClient::new(&aws_config); | ||||
Ok(()) | let server = FeatureFlagsService::new(db); | ||||
server.start().await.map_err(|e| e.into()) | |||||
} | } |