#progress-bar #progress #logging #log #log-line

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

#90 in Concurrency

Download history 11321/week @ 2024-01-21 7798/week @ 2024-01-28 10501/week @ 2024-02-04 9726/week @ 2024-02-11 7857/week @ 2024-02-18 8146/week @ 2024-02-25 8305/week @ 2024-03-03 5915/week @ 2024-03-10 5985/week @ 2024-03-17 5602/week @ 2024-03-24 6624/week @ 2024-03-31 10942/week @ 2024-04-07 6206/week @ 2024-04-14 5262/week @ 2024-04-21 4885/week @ 2024-04-28 5460/week @ 2024-05-05

23,100 downloads per month
Used in 19 crates (14 directly)

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.3–9MB
~67K SLoC