Data Hook
一个轻量级的数据收集门面库,类似于 log crate 的设计理念。
data_hook crate 提供了一个简单的数据收集 API,它抽象了实际的数据处理实现。库可以使用此 crate 提供的数据收集 API,而使用者可以选择最适合其用例的收集器实现。
如果没有选择收集器实现,门面会回退到"无操作"实现,忽略所有数据收集请求。在这种情况下,开销非常小——只是一个整数加载、比较和跳转。
特性
- 简单易用:只需一个
data_hook!宏即可收集数据 - 零依赖:核心库没有外部依赖
- 高性能:未设置收集器时开销极小
- 可插拔:通过
Collecttrait 支持自定义收集器 - 类型安全:编译时保证类型安全
基本用法
1. 在库中使用 data_hook
use data_hook;
2. 实现自定义收集器
use ;
;
3. 设置全局收集器
use set_collector;
示例
简单的打印收集器
运行简单示例:
这个示例展示了如何创建一个简单的收集器,将数据打印到标准输出。
文件收集器
运行文件收集器示例:
这个示例展示了如何实现一个文件收集器,将不同类别的数据写入不同的 JSON Lines 文件。
API 文档
data_hook! 宏
主要的数据收集宏。
data_hook!
category: 数据类别,用于标识数据类型format_string: 格式化字符串,类似println!args...: 格式化参数
Record 结构体
Collect Trait
set_collector 函数
设置全局数据收集器。应该在程序开始时调用一次。
许可证
本项目采用 MIT 或 Apache-2.0 双重许可证。