#log #wrapper #logging #logger

log_wrapper

为将日志crate包装到STDOUT的日志记录器而提供的某些样板代码

2个版本

0.1.1 2020年2月22日
0.1.0 2020年2月22日

#533 in 调试

MIT/Apache

7KB

log_wrapper

docs crates.io

这是对log crate进行包装的日志记录器的一些样板代码,它将日志输出到STDOUT。这有一个覆盖 log::Log 特性的 global static ConsoleLogger 结构体。一旦通过 ConsoleLogger::new(loglevel) 初始化,其中 loglevel 是以下之一:trace, debug, info, warn, error, off,就可以使用 log crate 中的标准宏,如 info!warn! 等,来打印,输出将根据定义的日志级别进行过滤。

文档

例如

somemod/src/main.rc

#[macro_use]
extern crate log;
use log_wrapper::{ConsoleLogger};
use somemod_backend::print_log;
fn main() {
    ConsoleLogger::new("warn".to_string());
    info!("This is info");
    warn!("warning");
    error!("oops");
    println!("Now from module");
    print_log();

}

somemod_backend/src/lib.rs

#[macro_use]
extern crate log;
pub mod nested_mod{
    pub fn print_log() {
        info!("This is info");
        warn!("warning");
        error!("oops");
    }
}

输出

23/02/2020:02:29:10 WARN module:somemod file:somemod/src/main.rs:8 warning
23/02/2020:02:29:10 ERROR module:somemod file:somemod/src/main.rs:9 oops
Now from module
23/02/2020:02:29:10 WARN module:somemod_backend::nested_mod file:somemod_backend/src/lib.rs:6 warning
23/02/2020:02:29:10 ERROR module:somemod_backend::nested_mod file:somemod_backend/src/lib.rs:7 oops

原因

这只是我从log crate中直接取出的样板代码,这样我就不必每次都输入它。

依赖关系

~1.5MB
~20K SLoC