use std::sync::OnceLock;
static INIT: OnceLock<()> = OnceLock::new();
pub fn init() {
INIT.get_or_init(|| {
init_impl();
});
}
#[cfg(not(target_arch = "wasm32"))]
fn init_impl() {
use log::LevelFilter;
let debug_enabled = cfg!(feature = "debug-logging") || is_debug_env_set();
let level = if debug_enabled {
LevelFilter::Debug
} else {
LevelFilter::Error
};
env_logger::Builder::new()
.filter_module("atlas_rs", level)
.format_timestamp_millis()
.try_init()
.ok(); }
#[cfg(not(target_arch = "wasm32"))]
fn is_debug_env_set() -> bool {
std::env::var("DEBUG_ATLS")
.map(|v| v == "1" || v.eq_ignore_ascii_case("true"))
.unwrap_or(false)
}
#[cfg(target_arch = "wasm32")]
fn init_impl() {
use log::LevelFilter;
let level = if cfg!(feature = "debug-logging") {
LevelFilter::Debug
} else {
LevelFilter::Error
};
console_log::init_with_level(level.to_level().unwrap_or(log::Level::Error)).ok();
}