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