A Rust library providing a logger which passes messages on to multiple loggers from a single log call.
Create a multi_log::MultiLogger
that wraps any number of loggers that
implement the log::Log
trait.
Logging to all these can then be performed using the log
crate's macros
(debug!
,
info!
, etc.).
#[macro_use] extern crate log;
extern crate env_logger;
extern crate simplelog;
extern crate multi_log;
fn main() {
// create a new logger from the `env_logger` crate
let logger_a = Box::new(env_logger::Builder::new().filter(None, log::LevelFilter::Info).build());
// create a new logger from the `simplelog` crate
let logger_b = simplelog::SimpleLogger::new(log::LevelFilter::Warn, simplelog::Config::default());
// wrap them both in a MultiLogger, and initialise as global logger
multi_log::MultiLogger::init(vec![logger_a, logger_b], log::Level::Info).unwrap();
warn!("This message should be logged with each logger.");
}