diff --git a/src/app.rs b/src/app.rs index 954f7cb4..11389076 100644 --- a/src/app.rs +++ b/src/app.rs @@ -2,6 +2,7 @@ use std::net::SocketAddr; use std::sync::Arc; use tokio::task::JoinHandle; +use tracing::info; use crate::bootstrap::logging; use crate::cache::image::manager::ImageCacheService; @@ -42,6 +43,8 @@ pub async fn run(configuration: Configuration, api_version: &Version) -> Running logging::setup(&log_level); + log_configuration(&configuration).await; + let configuration = Arc::new(configuration); // Get configuration settings needed to build the app dependencies and @@ -190,3 +193,9 @@ pub async fn run(configuration: Configuration, api_version: &Version) -> Running tracker_data_importer_handle: tracker_statistics_importer_handle, } } + +async fn log_configuration(configuration: &Configuration) { + let mut setting = configuration.get_all().await.clone(); + setting.remove_secrets(); + info!("Configuration:\n{}", setting.to_json()); +} diff --git a/src/config/mod.rs b/src/config/mod.rs index dbf94d8d..16973e12 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -141,17 +141,17 @@ impl Info { let env_var_config_toml_path = ENV_VAR_CONFIG_TOML_PATH.to_string(); let config_toml = if let Ok(config_toml) = env::var(env_var_config_toml) { - println!("Loading configuration from environment variable {config_toml} ..."); + println!("Loading extra configuration from environment variable {config_toml} ..."); Some(config_toml) } else { None }; let config_toml_path = if let Ok(config_toml_path) = env::var(env_var_config_toml_path) { - println!("Loading configuration from file: `{config_toml_path}` ..."); + println!("Loading extra configuration from file: `{config_toml_path}` ..."); config_toml_path } else { - println!("Loading configuration from default configuration file: `{default_config_toml_path}` ..."); + println!("Loading extra configuration from default configuration file: `{default_config_toml_path}` ..."); default_config_toml_path }; diff --git a/src/config/v2/mod.rs b/src/config/v2/mod.rs index 6412a4e2..5bb9096f 100644 --- a/src/config/v2/mod.rs +++ b/src/config/v2/mod.rs @@ -81,6 +81,26 @@ impl Settings { "***".clone_into(&mut self.mail.smtp.credentials.password); self.auth.secret_key = SecretKey::new("***"); } + + /// Encodes the configuration to TOML. + /// + /// # Panics + /// + /// Will panic if it can't be converted to TOML. + #[must_use] + pub fn to_toml(&self) -> String { + toml::to_string(self).expect("Could not encode TOML value") + } + + /// Encodes the configuration to JSON. + /// + /// # Panics + /// + /// Will panic if it can't be converted to JSON. + #[must_use] + pub fn to_json(&self) -> String { + serde_json::to_string_pretty(self).expect("Could not encode JSON value") + } } impl Validator for Settings {