11个版本 (7个破坏性更新)
| 0.8.0 | 2024年6月26日 |
|---|---|
| 0.6.0 | 2024年2月7日 |
| 0.4.0 | 2023年12月15日 |
| 0.3.2 | 2023年10月25日 |
| 0.1.1 | 2023年2月13日 |
#275 in 调试
每月416次下载
115KB
2.5K SLoC
此crate提供了一种异步日志后端,可以将日志发送到一个或多个输出。
此crate的核心是RingLog类型,它使用针对您的日志需求特定的构建器构建。在构建RingLog之后,可以使用start方法将其注册为全局日志记录器。您将得到一个Box<dyn Drain>,这应该定期在任何关键路径之外刷新。例如,在管理员线程或专用日志线程中。
对于将日志记录到单个文件,可以使用LogBuilder类型构建一个具有低开销但将日志消息发送到单个Output的RingLog。
可以使用SamplingLogBuilder构建一个RingLog,该日志记录器在将日志消息发送到单个Output之前将使用采样过滤日志消息。
可以使用 MultiLogBuilder 构建一个 RingLog,它根据日志 Record 的 target 元数据来路由日志消息。如果已注册针对该特定 target 的 RingLog,则日志消息将路由到该 RingLog 实例。不匹配任何特定目标的日志消息将被路由到添加到 MultiLogBuilder 的默认 RingLog。如果没有默认值,则不匹配任何特定目标的消息将被简单地丢弃。
这种日志类型的组合使我们能够构建满足应用需求的日志后端。例如,您可以使用本地日志宏将目标设置为某个特定类别,并将这些消息记录到文件中,同时让所有其他日志消息通过标准输出。这可以将命令/访问/审计日志从常规日志中分离出来。
依赖关系
~1.4–7MB
~37K SLoC