Skip to content

Commit 397ef0f

Browse files
committed
feat: log final config after processing all config sources
We print to logs the final configuration used to run the tracker (after Figment processes all sources): ```output Loading extra configuration from file: `storage/tracker/etc/tracker.toml` ... 2024-07-01T15:29:09.785334Z INFO torrust_tracker::bootstrap::logging: Logging initialized 2024-07-01T15:29:09.785862Z INFO torrust_tracker::bootstrap::app: Configuration: { "logging": { "log_level": "info" }, "core": { "announce_policy": { "interval": 120, "interval_min": 120 }, "database": { "driver": "Sqlite3", "path": "./storage/tracker/lib/database/sqlite3.db" }, "inactive_peer_cleanup_interval": 600, "listed": false, "net": { "external_ip": "0.0.0.0", "on_reverse_proxy": false }, "private": true, "tracker_policy": { "max_peer_timeout": 900, "persistent_torrent_completed_stat": false, "remove_peerless_torrents": true }, "tracker_usage_statistics": true }, "udp_trackers": null, "http_trackers": null, "http_api": null, "health_check_api": { "bind_address": "127.0.0.1:1313" } } 2024-07-01T15:29:09.785879Z WARN torrust_tracker::app: No services enabled in configuration 2024-07-01T15:29:09.785920Z INFO torrust_tracker::app: No UDP blocks in configuration 2024-07-01T15:29:09.785923Z INFO torrust_tracker::app: No HTTP blocks in configuration 2024-07-01T15:29:09.785924Z INFO torrust_tracker::app: No API block in configuration 2024-07-01T15:29:09.785941Z INFO HEALTH CHECK API: Starting on: http://127.0.0.1:1313 2024-07-01T15:29:09.786035Z INFO HEALTH CHECK API: Started on: http://127.0.0.1:1313 ```
1 parent ddfbde3 commit 397ef0f

File tree

3 files changed

+23
-3
lines changed

3 files changed

+23
-3
lines changed

packages/configuration/src/lib.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -111,17 +111,17 @@ impl Info {
111111
let env_var_config_toml_path = ENV_VAR_CONFIG_TOML_PATH.to_string();
112112

113113
let config_toml = if let Ok(config_toml) = env::var(env_var_config_toml) {
114-
println!("Loading configuration from environment variable:\n {config_toml}");
114+
println!("Loading extra configuration from environment variable:\n {config_toml}");
115115
Some(config_toml)
116116
} else {
117117
None
118118
};
119119

120120
let config_toml_path = if let Ok(config_toml_path) = env::var(env_var_config_toml_path) {
121-
println!("Loading configuration from file: `{config_toml_path}` ...");
121+
println!("Loading extra configuration from file: `{config_toml_path}` ...");
122122
config_toml_path
123123
} else {
124-
println!("Loading configuration from default configuration file: `{default_config_toml_path}` ...");
124+
println!("Loading extra configuration from default configuration file: `{default_config_toml_path}` ...");
125125
default_config_toml_path
126126
};
127127

packages/configuration/src/v2/mod.rs

+16
Original file line numberDiff line numberDiff line change
@@ -346,10 +346,26 @@ impl Configuration {
346346
}
347347

348348
/// Encodes the configuration to TOML.
349+
///
350+
/// # Panics
351+
///
352+
/// Will panic if it can't be converted to TOML.
353+
#[must_use]
349354
fn to_toml(&self) -> String {
350355
// code-review: do we need to use Figment also to serialize into toml?
351356
toml::to_string(self).expect("Could not encode TOML value")
352357
}
358+
359+
/// Encodes the configuration to JSON.
360+
///
361+
/// # Panics
362+
///
363+
/// Will panic if it can't be converted to JSON.
364+
#[must_use]
365+
pub fn to_json(&self) -> String {
366+
// code-review: do we need to use Figment also to serialize into json?
367+
serde_json::to_string_pretty(self).expect("Could not encode JSON value")
368+
}
353369
}
354370

355371
#[cfg(test)]

src/bootstrap/app.rs

+4
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use std::sync::Arc;
1515

1616
use torrust_tracker_clock::static_time;
1717
use torrust_tracker_configuration::Configuration;
18+
use tracing::info;
1819

1920
use super::config::initialize_configuration;
2021
use crate::bootstrap;
@@ -26,8 +27,11 @@ use crate::shared::crypto::ephemeral_instance_keys;
2627
#[must_use]
2728
pub fn setup() -> (Configuration, Arc<Tracker>) {
2829
let configuration = initialize_configuration();
30+
2931
let tracker = initialize_with_configuration(&configuration);
3032

33+
info!("Configuration:\n{}", configuration.to_json());
34+
3135
(configuration, tracker)
3236
}
3337

0 commit comments

Comments
 (0)