#debug-mode #debugging-logging #log-debug #log #env-var

debug-log

dbg! and eprintln! that only run on debug mode. WASM is supported.

10 releases

0.3.1 Jan 5, 2024
0.3.0 Jan 3, 2024
0.2.2 Nov 4, 2023
0.2.1 Jun 29, 2023
0.1.4 Nov 28, 2022

#167 in WebAssembly


Used in crdt-richtext

MIT license

13KB
218 lines

debug-log

Documentation

Simple log utils for debugging in Rust.

  • 🦀 Enabled only in debug mode when DEBUG environment variable is set. You can change the DEBUG value in runtime as well by set_debug.
  • 🔊 Only log in files whose paths match DEBUG="filename". Match all by using DEBUG="", or DEBUG="*"
  • 📦 Group output with debug_group
  • 📤 WASM support. It will use the console API

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};
fn main() {
    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
    }
}

Dependencies

~25–250KB