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