mecha10_runtime/
logging.rs1use crate::config::LogFormat;
4use tracing_subscriber::{fmt, prelude::*, EnvFilter};
5
6pub fn init_logging(level: &str, format: LogFormat) {
10 let env_filter = std::env::var("LOG_LEVEL")
13 .ok()
14 .map(EnvFilter::new)
15 .or_else(|| EnvFilter::try_from_default_env().ok())
16 .unwrap_or_else(|| EnvFilter::new(level));
17
18 let result = match format {
19 LogFormat::Pretty => tracing_subscriber::registry()
20 .with(env_filter)
21 .with(fmt::layer().pretty())
22 .try_init(),
23 LogFormat::Json => tracing_subscriber::registry()
24 .with(env_filter)
25 .with(fmt::layer().json().flatten_event(true))
26 .try_init(),
27 LogFormat::Compact => tracing_subscriber::registry()
28 .with(env_filter)
29 .with(fmt::layer().compact())
30 .try_init(),
31 };
32
33 let _ = result;
35}