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