2 个版本

0.2.1 2023年6月6日
0.2.0 2023年6月5日

#13 in #verbose

MIT 许可证

15KB
196

树桩

树桩是一个非常简单的控制台日志库。

应用设置的日志级别

应用程序可以使用 Stump 的 set_min_log_level 函数调用来设置全局使用的日志级别。然而,这可以通过环境变量来覆盖。

#[macro_use]
extern crate stump;

fn main() {
    stump::set_min_log_level(stump::LogEntryLevel::INFO);
    info!("Initialized logging");

    // Application logic ...
}

环境变量控制

STUMP_LOG_AT_LEVEL = DEBUG | INFO | WARN | ERROR

STUMP_LOG_DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S%.3f"

有关日期和时间格式的信息,请参阅 https://docs.rs/chrono/latest/chrono/

日志

debug!("Kevin is");
info!("bad at");
warn!("writing documentation");
error!("for OSS projects");

任务完成消息

树桩还提供了用于打印任务完成状态消息的函数。

stump::print_done("Some process finished");
// Some process finished                                    [ DONE ]

stump::print_warn("Some process with warnings");
// Some process with warnings                               [ WARN ]

stump::print_fail("Some process failed");
// Some process failed                                      [ FAIL ]

通用详细(或非详细)打印

这是一个通用的 Rust 的 printlneprintln 版本,它尊重全局详细设置。


vprintln!("This won't print as the default is false");

stump::set_verbose(true);

// print to stdout
vprintln!("Print something {}", "Here");


// print to stderr
veprintln!("Print something {}", "Here");

stump::set_verbose(false);

// Don't print to stdout
vprintln("Again nothing will print");

覆盖 Stdout

当将树桩与另一个 CLI 库(如 indicatif)集成时,您可以为打印提供另一种方式,例如通过它们的打印方法路由输出。

use indicatif::ProgressBar;
use stump;

lazy_static! {
    static ref PB: ProgressBar = ProgressBar::new(1);
}

fn main() {

    stump::set_print(|s| {
        PB.println(s);
    });

}


依赖项

~1–12MB
~78K SLoC