use tracing_subscriber::{fmt, layer::SubscriberExt, util::SubscriberInitExt, EnvFilter};
use crate::config::LoggingConfig;
/// Initialise the global `tracing` subscriber.
///
/// Safe to call multiple times — subsequent calls are no-ops
/// (the global subscriber is set only once).
pub fn init(cfg: &LoggingConfig) {
let filter = EnvFilter::try_from_default_env()
.unwrap_or_else(|_| EnvFilter::new(&cfg.level));
if cfg.format.to_lowercase() == "json" {
let _ = tracing_subscriber::registry()
.with(filter)
.with(fmt::layer().json())
.try_init();
} else {
let _ = tracing_subscriber::registry()
.with(filter)
.with(fmt::layer())
.try_init();
}
}