Crate debug_log

source ·
Expand description

Dead simple log utils for debug in Rust.

  • 🦀 Enabled only in debug mode when DEBUG environment variable is set
  • 🔊 Only perform log in files whose paths match DEBUG="filename". Match all by using DEBUG="", or DEBUG="*"
  • 📦 Group output with debug_group

The output log is super easy to read on VS Code with sticky scroll enabled.

Example

use debug_log::{debug_dbg, debug_log, group, group_end};
group!("A Group");
{
    group!("Sub A Group");
    let arr: Vec<_> = (0..3).collect();
    debug_dbg!(&arr);
    {
        group!("Sub Sub A Group");
        debug_dbg!(&arr);
        group_end!();
    }
    debug_log!("Hi");
    debug_dbg!(&arr);
    group_end!();
}

{
    group!("B Group");
    debug_log!("END");
    group_end!();
}
group_end!();

Run with DEBUG=* cargo run

Output

A Group {
    Sub A Group {
        [src/lib.rs:144] &arr = [
            0,
            1,
            2,
        ]
        Sub Sub A Group {
            [src/lib.rs:147] &arr = [
                0,
                1,
                2,
            ]
        }
        [src/lib.rs:150] Hi
        [src/lib.rs:151] &arr = [
            0,
            1,
            2,
        ]
    }
    B Group {
        [src/lib.rs:157] END
    }
}

Macros

It can be filtered by DEBUG env and can only log on debug mode
Use it like println!(). Except it can be filtered by DEBUG env and can only log on debug mode
Group the following logs until group_end!()
End the previous group