#log-messages #logging #target #output #single #single-file #drain

twitter/rustcommon-logger

常见的 Twitter Rust 库

1 个稳定版本

1.0.0 2020年6月29日

#1070文件系统

341 星 & 11 关注者

26KB
619

此包提供了一种异步日志后端,可以将日志定向到一个或多个输出。

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

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

可以使用 SamplingLogBuilder 构建一个 AsyncLog,它将在将日志消息定向到单个 Output 之前使用采样来过滤日志消息。

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

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

依赖项

~0.8–1MB
~16K SLoC