8 个版本

0.1.8 2021年2月2日
0.1.7 2021年2月2日
0.1.6 2021年1月30日
0.1.3 2020年3月1日
0.1.0 2019年6月30日

#416 in 调试

Apache-2.0

11KB
209 代码行

structlog

如果您想在日志消息中包含有用的信息,但又不想使用冗长的文本来连接所有部分,这个crate可能会帮到您。它不会帮助您使消息变得有用,也不会是向某个系统发送消息最快的方法。这些消息的主要输出是一个仅包含给日志记录器的键和值的JSON序列化结构。

目前这个crate正在构建中,用于我的另一个项目,所以随着需要会进行更新和扩展。欢迎并鼓励贡献。请参阅贡献指南了解您如何提供帮助。

当前使用选项

您创建一个实现DisplayEvent来输出JSON以方便使用。在创建事件时,会添加一些有用的字段,例如创建时间戳和调用者位置。创建事件可以是使用Event::from_str()等:


// By default the event will be created with a level/severity of INFO.
let test_event = Event::from_str("some event");

// To make it another level you can do: -
let mut test_event_error = Event::from_str("something bad happened");
test_event_error.error();

或者您可以使用:

let mut test_event = Event::new();
test_event.add_field(
    String::from("message"),
    String::from("some useful message"),
);

如果您使用println!("{}", test_event),您将看到类似的内容:

{"attributes":{"message":"Some useful message"},"created":"2021-02-02T20:04:06.949823Z","level":"INFO","severity":"INFO","caller":"tests/integration_tests.rs:5:18"}

依赖项

~1.6–2.6MB
~51K SLoC