1 个不稳定版本
0.1.0 | 2019 年 8 月 21 日 |
---|
#29 在 #slog
12KB
188 行
slg-vmodule - 基于 slog-rs 的模块级别日志级别过滤器 Drain
功能
过滤器 Drain 提供了对模块(日志器名称)级别的日志的精细控制。例如:使用标志 foo=debug,bar=error
和默认级别 INFO,只有来自 foo 的调试日志会被排空,而不是来自 bar。并且来自 bar 的日志至少需要 ERROR 级别才能通过。没有模块名称的其他日志将继续采用默认的 INFO 设置。
用法
// ...
let vmodule: HashMap<String, Level> = [
("foo".to_owned(), Level::Debug),
("bar".to_owned(), Level::Error),
]
.iter()
.cloned()
.collect();
// Or parse from flag string
//let vmodule: HashMap<String, Level> = ModLevelFilterConfig("foo=debug,bar=error".to_string()).into();
// Module name key("module" here) is configurable. Use whatever you like.
let filter =
ModLevelFilter::new(drain, "module".to_owned(), Level::Warning, vmodule).fuse();
// Logger for different modules
let root_log = Logger::root(filter.fuse(), o!());
let foo_log = root_log.new(o!("module" => "foo"));
let bar_log = root_log.new(o!("module" => "bar"));
info!(root_log, "Not Pass");
info!(foo_log, "Pass");
info!(bar_log, "Not Pass");
// ...
依赖
~160KB