use tracing_subscriber::EnvFilter;
const DEFAULT_FILTER: &str = "info,toac=warn";
pub fn init_tracing(filter: Option<&str>, jsonl: bool) -> anyhow::Result<()> {
let default_filter = filter.unwrap_or(DEFAULT_FILTER);
let env_filter =
EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new(default_filter));
let builder = tracing_subscriber::fmt()
.with_env_filter(env_filter)
.with_writer(std::io::stderr)
.with_target(true);
if jsonl {
builder
.json()
.try_init()
.map_err(|e| anyhow::anyhow!("tracing init failed: {e}"))
} else {
builder
.with_ansi(std::io::IsTerminal::is_terminal(&std::io::stderr()))
.try_init()
.map_err(|e| anyhow::anyhow!("tracing init failed: {e}"))
}
}