1 个稳定版本
1.0.0 | 2020年6月29日 |
---|
#1070 在 文件系统
341 星 & 11 关注者
26KB
619 行
此包提供了一种异步日志后端,可以将日志定向到一个或多个输出。
此包的核心是 AsyncLog
类型,它使用一个特定于您日志需求的构建器来构造。在构建 AsyncLog
之后,可以使用 start
方法将其注册为全局日志记录器。您将得到一个 Box<dyn Drain>
,该对象应在任何关键路径之外定期刷新。例如,在管理线程或专用日志线程中。
对于将日志记录到单个文件,可以使用 LogBuilder
类型构建一个具有低开销但将日志消息定向到单个 Output
的 AsyncLog
。
可以使用 SamplingLogBuilder
构建一个 AsyncLog
,它将在将日志消息定向到单个 Output
之前使用采样来过滤日志消息。
可以使用 MultiLogBuilder
来构建一个 AsyncLog
,该日志根据日志 Record
的 target
元数据进行路由。如果已为该特定 target
注册了 AsyncLog
,则日志消息将路由到该 AsyncLog
实例。不匹配任何特定目标的日志消息将路由到已添加到 MultiLogBuilder
的默认 AsyncLog
。如果没有默认值,不匹配任何特定目标的日志消息将被简单地丢弃。
这种日志类型的组合使我们能够创建满足应用程序需求的日志后端。例如,您可以使用本地日志宏将目标设置为某个特定类别,并将这些消息记录到文件中,同时让所有其他日志消息通过标准输出。这可以将命令/访问/审计日志从常规日志中分离出来。
依赖项
~0.8–1MB
~16K SLoC