#env-var #log #logging #logger

env_filter

使用环境变量过滤日志事件

3 个版本

0.1.2 2024年7月25日
0.1.1 2024年7月23日
0.1.0 2024年1月19日

#131调试

Download history 231366/week @ 2024-04-28 227532/week @ 2024-05-05 248145/week @ 2024-05-12 236264/week @ 2024-05-19 249991/week @ 2024-05-26 293122/week @ 2024-06-02 287077/week @ 2024-06-09 289601/week @ 2024-06-16 282000/week @ 2024-06-23 270151/week @ 2024-06-30 328125/week @ 2024-07-07 334735/week @ 2024-07-14 357959/week @ 2024-07-21 386447/week @ 2024-07-28 375246/week @ 2024-08-04 419694/week @ 2024-08-11

1,562,152 每月下载量
用于 1,783 个包 (9 个直接使用)

MIT/Apache

48KB
971

env_filter

crates.io Documentation

使用环境变量过滤日志事件


lib.rs:

日志记录过滤。

你可以在自己的日志记录器实现中使用 Filter 类型,使用与 env_logger 相同的过滤解析和匹配。

在自己的日志记录器中使用 env_filter

你可以在自己的日志记录器中使用 env_filter 的过滤功能。在构建日志记录器时,调用 Builder::parse 解析字符串中的指令。在接收日志记录时,调用 Filter::matches 检查记录是否应该被记录,基于解析的过滤器。

use env_filter::Filter;
use log::{Log, Metadata, Record};

struct PrintLogger;

impl Log for PrintLogger {
    fn enabled(&self, metadata: &Metadata) -> bool {
        true
    }

    fn log(&self, record: &Record) {
        println!("{:?}", record);
    }

    fn flush(&self) {}
}

let mut builder = env_filter::Builder::new();
// Parse a directives string from an environment variable
if let Ok(ref filter) = std::env::var("MY_LOG_LEVEL") {
    builder.parse(filter);
}

let logger = env_filter::FilteredLog::new(PrintLogger, builder.build());

依赖

~2.7–4MB
~67K SLoC