5个版本
0.3.3 | 2024年4月24日 |
---|---|
0.3.2 | 2024年4月23日 |
0.3.1 | 2024年4月22日 |
0.3.0 | 2024年4月22日 |
0.2.0 | 2024年4月22日 |
4 在 #trim
每月568次下载
16KB
197 行
detailer
工作流程日志记录的便捷工具。
关于
这是一个简洁、低依赖的日志记录工具。此项目不使用unsafe
代码。它只依赖于std和log。
详细信息
Detailer允许你在一份log
报告中记录有关工作流程的所有相关信息。有时你可能需要这样做。有时你可能偶尔需要这样做。
禁用Detailer日志行的开销与禁用日志级别的开销相似,例如,当前级别设置为Info时,类似于log::debug!()
。启用detail!()
语句需要将一个writeln!()
语句写入String。如果您想保持这种低廉的成本并且有大量的这些detailer,您应该考虑使用显式的flush()
并重复使用它们。如果您使用计时,请记住在时间应该重新开始时reset()
。
use detailer::{Detailer, detail, new_detailer, scope};
let mut detailer = new_detailer!(); // Info level, WithTimings
detail!(detailer, "some {} message", "log");
您可以考虑将Detailer作为参数传递给应该在Detailer启用时记录详细信息的函数。这些函数不需要检查Detailer:它们只需要记录它们的详细信息,类似于您使用log
的方式。
fn expensive_work(detailer: &mut Detailer, name: &str) {
let _guard = scope!(detailer, "expensive work: {name}"); // indent lines under the expensive_work stack
detail!(detailer, "some part of the work");
detail!(detailer, "some other part of the work");
}
依赖关系
~87KB