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 在 命令行界面
15KB
217 行
Clout
Clout 是一个 command line output library.
它提供了一个类似于日志 crate 的接口,但侧重点不同
- clout 的输出是有偏见的,并且与日志不同,不是可插拔的
- clout 为在命令行工具中使用提供了合理的设置
- 支持不同消息级别的颜色
- 输出始终到 stdout(目前如此)
- 不同的输出级别是通过与典型命令行参数约定一致的设置选择的
许多库已经将消息输出到日志框架,你通常不希望所有这些消息都显示给最终用户。Clout 允许你使用日志风格 API 生成输出,而无需过滤所有这些消息。(实际上,你可以同时使用 clout 和 logging,例如将日志消息发送到文件)
clout 在 Warn
和 Info
之间包含额外的级别。 Status
旨在用于大多数输出消息,而 Success
旨在表示成功。
将 Info
和 Status
分开,因为通常 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