use crate::prelude::*;
use bevy::log::tracing;
use bevy::log::tracing_subscriber;
use std::str::FromStr;
use tracing::level_filters::LevelFilter;
pub struct PrettyTracing {
default_level: tracing::Level,
}
impl Default for PrettyTracing {
fn default() -> Self {
#[cfg(test)]
let default_level = tracing::Level::WARN;
#[cfg(not(test))]
let default_level = tracing::Level::DEBUG;
Self { default_level }
}
}
impl PrettyTracing {
pub fn init(&self) {
let log_level = env_ext::var("AWS_LAMBDA_LOG_LEVEL")
.or_else(|_| env_ext::var("RUST_LOG"))
.map(|val| LevelFilter::from_str(&val).ok())
.ok()
.flatten()
.unwrap_or(self.default_level.into());
let sub = tracing_subscriber::fmt()
.compact()
.with_level(true)
.with_target(false)
.with_thread_ids(false)
.with_thread_names(false)
.with_file(true)
.without_time()
.with_line_number(true)
.with_env_filter(
tracing_subscriber::EnvFilter::from_default_env()
.add_directive("wgpu=error".parse().unwrap())
.add_directive("naga=warn".parse().unwrap())
.add_directive("bevy_app=warn".parse().unwrap())
.add_directive("walrus=warn".parse().unwrap())
.add_directive("aws=warn".parse().unwrap())
.add_directive("hyper-util=warn".parse().unwrap())
.add_directive(log_level.into()),
)
.with_writer(std::io::stdout);
sub.pretty().try_init().ok();
}
}