use e_log::appender::{non_blocking::WorkerGuard, rolling};
use e_log::subscriber::{fmt, layer::SubscriberExt, Registry};
use e_log::{FileShare, Level};
pub fn init() -> Vec<WorkerGuard> {
e_log::panic::reattach_windows_terminal();
let folder = std::path::Path::new("logs");
let _ = std::fs::create_dir_all(folder);
let roll = rolling::never(folder, "gpu-test.log", FileShare::Read);
let (file_writer, file_guard) = e_log::appender::non_blocking(roll);
let file_layer = fmt::layer().with_ansi(false).with_writer(file_writer);
let (stdout_writer, stdout_guard) = e_log::appender::non_blocking(std::io::stdout());
let stdout_layer = fmt::layer().with_ansi(false).with_writer(stdout_writer);
let sub = Registry::default()
.with(Level::Info.to_level_filter())
.with(stdout_layer)
.with(file_layer);
e_log::init_subscriber(sub, false);
vec![file_guard, stdout_guard]
}