| Crates.io | filter-logger |
| lib.rs | filter-logger |
| version | 0.3.0 |
| created_at | 2018-12-25 06:33:19.201589+00 |
| updated_at | 2019-05-31 04:17:18.132666+00 |
| 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!");
}