3 个版本 (破坏性更新)
| 0.3.0 | 2019年5月31日 | 
|---|---|
| 0.2.0 | 2019年5月20日 | 
| 0.1.0 | 2018年12月25日 | 
#40 在 #body
每月175次下载
7KB
112 行
Rust 的 Filter Logger
这个简单的日志库可以根据每个日志行的模块路径或日志体进行过滤,或者两者都过滤。
要使用,只需将该crate添加到您的 Cargo.toml
[dependencies]
filter-logger = "*"
log = "*"
在您的源代码中,使用模块过滤器或日志体过滤器初始化日志(使用空向量表示没有过滤器)
extern crate filter_logger;
#[macro_use] extern crate log;
use filter_logger::FilterLogger;
#[test]
fn test() {
    FilterLogger::init(log::Level::Info, vec!["foo2".to_string()], vec!["DON'T PRINT".to_string()]);
    foo1::log_it();
    foo2::log_it();
}
mod foo1 {
    pub fn log_it() {
        info!("This will print out");
        info!("DON'T PRINT - This will NOT print out");
    }
}
mod foo2 {
    pub fn log_it() {
        info!("This will NOT print out");
    }
}
输出将如下
<date> <time> INFO [test_log::foo1] This will print out
过滤器是对记录对象传递给 log() 函数的模块路径或 args() 参数的简单字符串检查。
日期时间格式
可以使用 with_format 函数而不是 init 来更改格式
extern crate filter_logger;
#[macro_use] extern crate log;
use filter_logger::FilterLogger;
#[test]
fn test() {
    FilterLogger::with_format(log::Level::Info, vec![], vec![], "%Y%m%dT%H%M%S%z");
    info!("Should use RFC 3339 format!");
}
依赖
~1.5MB
~20K SLoC