Skip to main content

traverse_logging/
lib.rs

1use tracing_subscriber::{fmt, prelude::*, EnvFilter};
2
3/// Initialize the tracing subscriber with configurable verbosity
4///
5/// # Arguments
6/// * `verbose` - If true, sets default log level to debug; otherwise info
7///
8pub fn init_subscriber(verbose: bool) {
9    let env_filter = if std::env::var("RUST_LOG").is_ok() {
10        EnvFilter::from_default_env()
11    } else {
12        let default_level = if verbose { "debug" } else { "info" };
13        EnvFilter::new(default_level)
14    };
15    tracing_subscriber::registry()
16        .with(fmt::layer())
17        .with(env_filter)
18        .init();
19}
20
21/// Initialize the tracing subscriber with a custom filter
22///
23/// # Arguments
24/// * `filter` - A custom filter string (e.g., "info", "debug", "trace")
25pub fn init_subscriber_with_filter(filter: &str) {
26    let env_filter = EnvFilter::new(filter);
27    
28    tracing_subscriber::registry()
29        .with(fmt::layer())
30        .with(env_filter)
31        .init();
32}