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

Download history 236/week @ 2024-04-25 120/week @ 2024-05-02 143/week @ 2024-05-09 47/week @ 2024-05-16 26/week @ 2024-05-23 44/week @ 2024-05-30 80/week @ 2024-06-06 38/week @ 2024-06-13 75/week @ 2024-06-20 110/week @ 2024-06-27 85/week @ 2024-07-04 73/week @ 2024-07-11 148/week @ 2024-07-18 215/week @ 2024-07-25 59/week @ 2024-08-01 116/week @ 2024-08-08

每月568次下载

Apache-2.0

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