use tracing_appender::non_blocking::WorkerGuard;
use tracing_subscriber::{EnvFilter, fmt, prelude::*};
pub fn init() -> WorkerGuard {
let config_dir = directories::ProjectDirs::from("", "", "linear-tui")
.map(|d| d.config_dir().to_path_buf())
.unwrap_or_else(|| std::env::temp_dir().join("linear-tui"));
std::fs::create_dir_all(&config_dir).ok();
let (non_blocking, guard) =
match crate::private_file::open_append(&config_dir.join("debug.log")) {
Ok(file) => tracing_appender::non_blocking(file),
Err(_) => tracing_appender::non_blocking(std::io::sink()),
};
let filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info"));
tracing_subscriber::registry()
.with(filter)
.with(fmt::layer().with_writer(non_blocking).with_ansi(false))
.init();
guard
}