use anyhow::{Result, bail};
use tracing_subscriber::EnvFilter;
pub fn init(level: &str, format: &str) -> Result<()> {
let filter = match EnvFilter::try_from_default_env() {
Ok(f) => f,
Err(_) => EnvFilter::try_new(level)
.map_err(|e| anyhow::anyhow!("invalid --log-level `{level}`: {e}"))?,
};
let builder = tracing_subscriber::fmt().with_env_filter(filter);
match format {
"text" => builder.init(),
"json" => builder.json().init(),
other => bail!("invalid --log-format `{other}` (expected `text` or `json`)"),
}
Ok(())
}