#filter #logger #body #format #filtering

filter-logger

一个简单的基于模块路径过滤的日志库

3 个版本 (破坏性更新)

0.3.0 2019年5月31日
0.2.0 2019年5月20日
0.1.0 2018年12月25日

#40#body

Download history • Rust 包仓库 83/week @ 2024-03-10 • Rust 包仓库 48/week @ 2024-03-17 • Rust 包仓库 67/week @ 2024-03-24 • Rust 包仓库 144/week @ 2024-03-31 • Rust 包仓库 86/week @ 2024-04-07 • Rust 包仓库 82/week @ 2024-04-14 • Rust 包仓库 98/week @ 2024-04-21 • Rust 包仓库 27/week @ 2024-04-28 • Rust 包仓库 37/week @ 2024-05-05 • Rust 包仓库 81/week @ 2024-05-12 • Rust 包仓库 86/week @ 2024-05-19 • Rust 包仓库 33/week @ 2024-05-26 • Rust 包仓库 41/week @ 2024-06-02 • Rust 包仓库 35/week @ 2024-06-09 • Rust 包仓库 50/week @ 2024-06-16 • Rust 包仓库 48/week @ 2024-06-23 • Rust 包仓库

每月175次下载

MIT 许可

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