use tracing_subscriber::{fmt, prelude::*, EnvFilter};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum LogLevel {
Trace,
Debug,
#[default]
Info,
Warn,
Error,
}
impl LogLevel {
fn as_str(&self) -> &'static str {
match self {
LogLevel::Trace => "trace",
LogLevel::Debug => "debug",
LogLevel::Info => "info",
LogLevel::Warn => "warn",
LogLevel::Error => "error",
}
}
}
pub fn configure_logging(level: LogLevel) {
let filter = EnvFilter::try_from_default_env()
.unwrap_or_else(|_| EnvFilter::new(format!("minillmlib={}", level.as_str())));
tracing_subscriber::registry()
.with(fmt::layer().with_target(true).with_level(true))
.with(filter)
.try_init()
.ok(); }
pub fn configure_logging_with_filter(filter: &str) {
let filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new(filter));
tracing_subscriber::registry()
.with(fmt::layer().with_target(true).with_level(true))
.with(filter)
.try_init()
.ok();
}