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 调试

Download history 128/week @ 2024-04-14 192/week @ 2024-04-21 183/week @ 2024-04-28 91/week @ 2024-05-05 45/week @ 2024-05-12 58/week @ 2024-05-19 28/week @ 2024-05-26 66/week @ 2024-06-02 732/week @ 2024-06-09 28/week @ 2024-06-16 393/week @ 2024-06-23 65/week @ 2024-06-30 46/week @ 2024-07-07 44/week @ 2024-07-14 94/week @ 2024-07-21 231/week @ 2024-07-28

每月416次下载

Apache-2.0

115KB
2.5K SLoC

此crate提供了一种异步日志后端,可以将日志发送到一个或多个输出。

此crate的核心是RingLog类型,它使用针对您的日志需求特定的构建器构建。在构建RingLog之后,可以使用start方法将其注册为全局日志记录器。您将得到一个Box<dyn Drain>,这应该定期在任何关键路径之外刷新。例如,在管理员线程或专用日志线程中。

对于将日志记录到单个文件,可以使用LogBuilder类型构建一个具有低开销但将日志消息发送到单个OutputRingLog

可以使用SamplingLogBuilder构建一个RingLog,该日志记录器在将日志消息发送到单个Output之前将使用采样过滤日志消息。

可以使用 MultiLogBuilder 构建一个 RingLog,它根据日志 Recordtarget 元数据来路由日志消息。如果已注册针对该特定 targetRingLog,则日志消息将路由到该 RingLog 实例。不匹配任何特定目标的日志消息将被路由到添加到 MultiLogBuilder 的默认 RingLog。如果没有默认值,则不匹配任何特定目标的消息将被简单地丢弃。

这种日志类型的组合使我们能够构建满足应用需求的日志后端。例如,您可以使用本地日志宏将目标设置为某个特定类别,并将这些消息记录到文件中,同时让所有其他日志消息通过标准输出。这可以将命令/访问/审计日志从常规日志中分离出来。

依赖关系

~1.4–7MB
~37K SLoC