3 个不稳定版本
0.2.0 | 2024 年 2 月 8 日 |
---|---|
0.1.1 | 2024 年 1 月 28 日 |
0.1.0 | 2024 年 1 月 28 日 |
#614 在 调试 中
每月 50 次下载
用于 otr
28KB
147 行
print_logger
一个简单的记录器,将消息打印到标准输出或标准错误(取决于消息类型)。应用固定的颜色方案。
简单示例
use log::*;
use regex::Regex;
// ...
print_logger::new()
.targets_by_regex(&[Regex::new(&format!("^{}[::.+]*", module_path!())).unwrap()])
.level_filter(LevelFilter::Info)
.init()
.unwrap();
error!("some failure");
// ...
模块级别日志
print_logger
提供了限制可以记录的组件的可能性。许多软件包使用 log,但你可能不希望它们的应用程序中包含输出。例如 hyper 严重依赖 log,但当你用 -vvvvv
启用 trace!()
消息时,你不想看到 hyper
的 trace!()
级别的输出。
为了支持这一点,print_logger
包含了两种方法
-
使用
targets_by_name
可以指定日志目标列表(见 https://docs.rs/log/latest/log/macro.error.html)。仅显示这些目标的消息。 -
使用
targets_by_regex
可以指定正则表达式列表。只有当消息的目标至少匹配这些表达式之一时,才会显示消息。在上面的例子中,仅显示二进制文件本身的消息,而不会显示其依赖项的消息(默认情况下,当前模块用作日志消息中的目标)。
如果同时提供了这两个列表,则如果消息的目标在 targets_by_name
中或与 targets_by_regex
的表达式之一匹配,则显示消息。如果 print_target_filter
大于或等于指定的 level_filter
,则会在日志消息的开始处显示目标名称(即默认情况下为实际的模块路径)。
许可证
依赖关系
~2–10MB
~100K SLoC