5 个不稳定版本

0.2.0 2020年7月18日
0.1.2 2019年10月15日
0.1.1 2019年8月22日
0.1.0 2019年8月22日
0.0.1 2019年8月12日

#453命令行界面

MIT 许可证

15KB
217

Clout

Clout 是一个 command line output library.

它提供了一个类似于日志 crate 的接口,但侧重点不同

  • clout 的输出是有偏见的,并且与日志不同,不是可插拔的
  • clout 为在命令行工具中使用提供了合理的设置
    • 支持不同消息级别的颜色
    • 输出始终到 stdout(目前如此)
    • 不同的输出级别是通过与典型命令行参数约定一致的设置选择的

许多库已经将消息输出到日志框架,你通常不希望所有这些消息都显示给最终用户。Clout 允许你使用日志风格 API 生成输出,而无需过滤所有这些消息。(实际上,你可以同时使用 clout 和 logging,例如将日志消息发送到文件)

clout 在 WarnInfo 之间包含额外的级别。 Status 旨在用于大多数输出消息,而 Success 旨在表示成功。

InfoStatus 分开,因为通常 CLI 工具提供 3 个级别的详细程度(-v-vv-vvv 是常见做法),但日志只提供 info 以下两个级别。

快速入门使用

设置

要使用 clout 的默认设置

    clout::init()
        .done()
        .expect("clout failed to init");

这将输出 Status 级别或更高的消息,并在可用的情况下使用终端颜色。

消息

可以使用类似于日志的宏来输出消息。在输出任何消息之前必须初始化 clout。有六个级别可用 - 请参阅 clout::Level 的文档,了解使用哪个级别。

    error!("an error");
    warn!("a warining");
    success!("a success");
    status!("a status message");
    info!("information message");
    debug!("debug message");
    trace!("tracing message");

如果你同时使用 logging crate,建议通过 clout:: 路径使用这些。

格式化

宏支持基于 format! 宏的常规格式化。

    status!("a formatted {}", "message");

更多选项

    clout::init()
        .with_verbose(4)
        .with_quiet(false)
        .with_silent(false)
        .with_use_color(clout::UseColor::Auto)
        .done()
        .expect("clout failed to init");
  • with_verbose 允许您从数字中选择一个详细程度级别。这对于支持 -v-vv 等非常有用。
  • with_quiet 将隐藏除 Error 消息之外的所有内容。
  • with_silent 将使所有内容静音。
  • with_use_color 将控制 clout 使用颜色的时机。

有关更多详细信息,请参阅 clout::Builder 的文档。

关闭

Clout 可以关闭以防止内存泄漏,如果您关心这一点的话。

    clout::shutdown().expect("failed to shutdown clout");

依赖项

~0–7.5MB
~42K SLoC