2个版本
0.1.1 | 2020年10月16日 |
---|---|
0.1.0 | 2020年10月12日 |
#25 in #message-format
26KB
278 代码行(不包括注释)
描述
一组可以用来实现Log接口的类。它比其他日志记录器提供了更大的灵活性,因为时间和消息格式都可以由用户完全指定。这种灵活性是通过使用strfmt库实现的,但这使得它比静态定义的格式更昂贵。
类
GenLogger是一个标准日志记录器,它接受一个Writer作为输入。StderrLogger和StdoutLogger是这个的简单包装器,可以用于它们的相应输出类型。FileLogger也使用GenLogger,但提供了额外的选项来指定文件创建选项。
PolyLogger也实现了Log接口,并且是多个其他Log实现的容器。例如,你可以将FileLogger、StderrLogger以及可能的一个第三方日志记录器添加到PolyLogger中,然后将PolyLogger设置为你的主要应用程序日志处理器。一个单独的info!/warn!/etc.调用将导致给定的消息按照你在每个日志记录器中指定的格式记录,并且使用每个日志记录器应用的任何级别过滤器。
未来选项
- 字符串格式化
runtime-fmt可能比strfmt更容易使用且更快,但目前依赖于rust功能的nightly构建。
同时,创建一组静态定义的格式可能比使用动态构建的strfmt方法更有效。
- PolyLogger中的生产者/消费者队列
当前实现以顺序方式在应用程序的同一线程中格式化和记录所有消息。移动到另一个线程(在进入队列时进行时间戳)将解除这种耦合。
依赖项
~1.5MB
~21K SLoC