use tracing_subscriber::{fmt, prelude::*, EnvFilter};
pub fn init_logging(level: &str) {
let env_filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| {
let default_level = format!("rust_scraper={},tokio=warn,reqwest=warn", level);
EnvFilter::new(default_level)
});
tracing_subscriber::registry()
.with(fmt::layer().pretty().with_target(true))
.with(env_filter)
.init();
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_init_logging_with_valid_level() {
let result = tracing_subscriber::registry()
.with(fmt::layer().pretty().with_target(true))
.with(EnvFilter::new("error"))
.try_init();
assert!(result.is_ok() || result.is_err());
}
#[test]
fn test_init_logging_with_debug_level() {
let _filter = EnvFilter::new("rust_scraper=debug,tokio=warn,reqwest=warn");
}
#[test]
fn test_init_logging_with_trace_level() {
let _filter = EnvFilter::new("rust_scraper=trace,tokio=warn,reqwest=warn");
}
}