27 个版本 (15 个稳定版本)
7.0.0 | 2022年11月6日 |
---|---|
6.0.0 | 2022年11月4日 |
5.0.2 | 2022年10月3日 |
5.0.1 | 2022年6月25日 |
0.2.3 | 2020年7月30日 |
#6 in #ll
299 每月下载量
75KB
2K SLoC
ll - 日志库
ll 是一个轻量级的日志库。其主要目的是提供手动监控代码部分执行的能力。
通过将代码部分包装到 Tasks
中来实现代码的监控。当任务开始时,Tasks 会发出一个 start
事件,当任务结束时,会发出 end
事件。
这些事件由 Reporters
消费。可以同时使用多个 reporters,并且每个 reporters 都会接收到任务事件。不同的 reporters 可以将任务事件报告/记录到不同的系统/来源,例如打印到 STDOUT、写入数据库、文件或第三方系统。
任务以任务树的形式组织。每个任务可以生成多个子任务,它们之间始终存在父子关系。TaskTree 是主要的结构,用于保存如何生成/记录/报告任务的配置。
示例
use ll::Task;
async fn do_something() {
ll::reporters::term_status::show();
let root_task = Task::create_new("root_task");
root_task.spawn("subtask_1", |task| async move {
task.spawn_sync("subtask_2", |task| {
// do other stuff
Ok(())
})?;
Ok(())
}).await.unwrap();
}
依赖项
~5–15MB
~167K SLoC