#log-messages #logging #logger #log #color-scheme

print_logger

将消息打印到标准输出或标准错误

3 个不稳定版本

0.2.0 2024 年 2 月 8 日
0.1.1 2024 年 1 月 28 日
0.1.0 2024 年 1 月 28 日

#614调试

每月 50 次下载
用于 otr

GPL-3.0-or-later

28KB
147

Crates.io (latest) Documentation REUSE status

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!() 消息时,你不想看到 hypertrace!() 级别的输出。

为了支持这一点,print_logger 包含了两种方法

  1. 使用 targets_by_name 可以指定日志目标列表(见 https://docs.rs/log/latest/log/macro.error.html)。仅显示这些目标的消息。

  2. 使用 targets_by_regex 可以指定正则表达式列表。只有当消息的目标至少匹配这些表达式之一时,才会显示消息。在上面的例子中,仅显示二进制文件本身的消息,而不会显示其依赖项的消息(默认情况下,当前模块用作日志消息中的目标)。

如果同时提供了这两个列表,则如果消息的目标在 targets_by_name 中或与 targets_by_regex 的表达式之一匹配,则显示消息。如果 print_target_filter 大于或等于指定的 level_filter,则会在日志消息的开始处显示目标名称(即默认情况下为实际的模块路径)。

许可证

GNU 公共许可证 v3.0

依赖关系

~2–10MB
~100K SLoC