#cli #progress #progressbar #logging #log

indicatif-log-bridge

Bridge the log crate and indicatif to stop log lines from mixing up with progress bars

4 releases

0.2.2 Aug 31, 2023
0.2.1 Jul 31, 2023
0.2.0 Jul 31, 2023
0.1.0 Jul 31, 2023

#137 in Command-line interface

Download history 1911/week @ 2023-08-19 2238/week @ 2023-08-26 2634/week @ 2023-09-02 1922/week @ 2023-09-09 2501/week @ 2023-09-16 2095/week @ 2023-09-23 2003/week @ 2023-09-30 2348/week @ 2023-10-07 1762/week @ 2023-10-14 2446/week @ 2023-10-21 2136/week @ 2023-10-28 1483/week @ 2023-11-04 1926/week @ 2023-11-11 1266/week @ 2023-11-18 2188/week @ 2023-11-25 2622/week @ 2023-12-02

8,116 downloads per month
Used in 7 crates

MIT license

7KB

Indicatif Log Bridge

Tired of your log lines and progress bars mixing up? indicatif_log_bridge to the rescue!

Simply wrap your favourite logging implementation in LogWrapper and those worries are a thing of the past.

Just remember to only use progress bars added to the MultiProgress you used , otherwise you are back to ghostly halves of progress bars everywhere.

Example

    let logger =
        env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info"))
            .build();
    let multi = MultiProgress::new();

    LogWrapper::new(multi.clone(), logger)
        .try_init()
        .unwrap();

    let pg = multi.add(ProgressBar::new(10));
    for i in (0..10) {
        std::thread::sleep(Duration::from_micros(100));
        info!("iteration {}", i);
        pg.inc(1);
    }
    pg.finish();
    multi.remove(&pg);

The code of this crate is pretty simple, so feel free to check it out.

Dependencies

~1–12MB
~82K SLoC