8 个版本
0.4.1 | 2024 年 1 月 4 日 |
---|---|
0.4.0 | 2022 年 9 月 10 日 |
0.3.1 | 2019 年 10 月 13 日 |
0.3.0 | 2018 年 12 月 11 日 |
0.1.0 | 2016 年 11 月 25 日 |
#112 在 数据结构
39,604 每月下载量
用于 62 个 crate (3 直接)
13KB
125 行
log-once
仅记录某些事件一次的辅助宏集合。
此 crate 提供 log_once
系列宏(warn_once!
,trace_once!
等);对于每个消息只发送一次日志事件。它依赖并使用 log crate 中的日志基础设施;并且与任何日志实现完全兼容。
这些宏将已看到的消息存储在 BTreeSet
中,并在发送日志事件之前检查消息是否在该集中。
用法
- 将其添加到您的
Cargo.toml
文件中
[dependencies]
log-once = "0.4"
- 导入宏
use log_once::{warn_once, log_once};
- 享受吧!
示例
use log::info;
use log_once::{info_once, warn_once};
pub fn shave_the_yak(yaks: &[Yak]) {
for yak in yaks {
info!(target: "yak_events", "Commencing yak shaving for {yak:?}");
loop {
match find_a_razor() {
Ok(razor) => {
// This will only appear once in the logger output for each razor
info_once!("Razor located: {razor}");
yak.shave(razor);
break;
}
Err(err) => {
// This will only appear once in the logger output for each error
warn_once!("Unable to locate a razor: {err}, retrying");
}
}
}
}
}
许可证
log-once 在 MIT 许可证和 Apache 许可证(版本 2.0)的条款下分发。
请参阅 LICENSE-APACHE 和 LICENSE-MIT 以获取详细信息。
依赖关系
~87KB