A thin logging implementation for Rust's log facade.
This crate allows for providing custom functions to the logger.
Examples where this might be useful:
- Logging logic needs to be different across log levels
- Another application's logger is being used like with godot-rust
- An existing crate is too opinionated in how it handles logging
- Setting logging functions per log level
- Setting a logging function across all log levels
- Filtering logs per module/filter
- Initializing filters from an environment variable (
RUST_LOG
by default)
use log::LevelFilter;
use youlog::Youlog;
Youlog::new()
.global_level(LevelFilter::Info)
.log_fn(LevelFilter::Info, |record| {
println!("info {}", record.args().as_str().unwrap_or_default());
})
.raw_fn(|record| {
println!("raw {}", record.args().as_str().unwrap_or_default());
})
.level("some_module", LevelFilter::Error)
.init()
.expect("unable to init logger");
log::info!("this is an info log!");
MPL-2.0
Filter implementation referenced from env_logger
.