7个不稳定版本 (3个破坏性更新)
使用旧的Rust 2015
0.4.1 | 2017年11月23日 |
---|---|
0.4.0 | 2017年11月15日 |
0.3.2 | 2017年11月8日 |
0.2.0 | 2017年11月8日 |
0.1.0 | 2017年9月29日 |
#37 in #targets
26KB
413 代码行
Quil是一个易于使用的库,支持消息级别、多个输出目标、子日志记录器和消息上下文。Quil可以在多个线程中安全使用,并且易于扩展。
示例
基本示例
let logger = Logger::new(Console::new(), context!{ src: "root" });
logger.info("hello world");
Tue, 7 Nov 2017 23:55:42 +0000 - info: hello world src=root
子上下文示例
let logger = Logger::new(Console::new(), context!{ src: "root", tag: "1" });
logger.info("hello");
let sub_logger = logger.ctx(context!{ tag: "", marker: "49" });
logger.info("world");
Tue, 7 Nov 2017 23:55:42 +0000 - info: hello src=root tag=1
Tue, 7 Nov 2017 23:55:42 +0000 - info: world src=root marker=49
多目标示例
let logger = Logger::new(targets![
Console::new(),
JsonFile::open("path/to/logfile.json"),
], context!{ some_meta_key: "some_meta_value" });
logger.info("hello");
let sub_logger = logger.ctx(context!{ marker: "49" });
logger.warn("world");
Shell:
Tue, 7 Nov 2017 23:55:42 +0000 - info: hello some_meta_key=some_meta_value
Tue, 7 Nov 2017 23:55:42 +0000 - warn: world some_meta_key=some_meta_value marker=49
日志文件:
{ "level": "info", "message": "hello", "context": { "some_meta_key": "some_meta_value" } }
{ "level": "warn", "message": "world", "context": { "some_meta_key": "some_meta_value", "marker": "49" } }
Quil是一个易于使用的库,支持消息级别、多个目标和消息上下文。Quil是线程安全的,因此可以在多个线程之间发送日志记录器。
示例
基本示例
let logger = Logger::new(Console::new(), context!{ src: "root" });
logger.info("hello world");
Tue, 7 Nov 2017 23:55:42 +0000 - info: hello world src=root
子上下文示例
let logger = Logger::new(Console::new(), context!{ src: "root", tag: "1" });
logger.info("hello");
let sub_logger = logger.ctx(context!{ tag: "", marker: "49" });
logger.info("world");
Tue, 7 Nov 2017 23:55:42 +0000 - info: hello src=root tag=1
Tue, 7 Nov 2017 23:55:42 +0000 - info: world src=root marker=49
依赖项
~1–8.5MB
~50K SLoC