Crates.io | filter-logger |
lib.rs | filter-logger |
version | 0.3.0 |
source | src |
created_at | 2018-12-25 06:33:19.201589 |
updated_at | 2019-05-31 04:17:18.132666 |
description | A simple filtering logger which will filter based on module-path. |
homepage | |
repository | http://github.com/kitsuneninetails/filter-logger-rust |
max_upload_size | |
id | 103719 |
size | 7,266 |
This simple logger will filter based on either the module path or the log body in each log line, or both.
to use, simply add the crate to your Cargo.toml
:
[dependencies]
filter-logger = "*"
log = "*"
In your source code, initialize the logger with the module filter and body filter (use empty vector for no filter):
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");
}
}
The output will be:
<date> <time> INFO [test_log::foo1] This will print out
The filters are a simple string check on either the module_path()
or the args()
parameter
of the record object passed into the log()
function.
The format can be changed by using the with_format
function instead of 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!");
}