pub struct CombinedLogger { /* private fields */ }
Expand description
The CombinedLogger struct. Provides a Logger implementation that proxies multiple Loggers as one.
The purpose is to allow multiple Loggers to be set globally
Implementations§
Source§impl CombinedLogger
impl CombinedLogger
Sourcepub fn init(logger: Vec<Box<dyn SharedLogger>>) -> Result<(), SetLoggerError>
pub fn init(logger: Vec<Box<dyn SharedLogger>>) -> Result<(), SetLoggerError>
init function. Globally initializes the CombinedLogger as the one and only used log facility.
Takes all used Loggers as a Vector argument. None of those Loggers should already be set globally.
All loggers need to implement log::Log
and logger::SharedLogger
and need to provide a way to be
initialized without calling set_logger
. All loggers of this library provide a `new(..)`` method
for that purpose.
Fails if another logger is already set globally.
§Examples
let _ = CombinedLogger::init(
vec![
TermLogger::new(LevelFilter::Info, Config::default(), TerminalMode::Mixed, ColorChoice::Auto),
WriteLogger::new(LevelFilter::Info, Config::default(), File::create("my_rust_bin.log").unwrap())
]
);
Sourcepub fn new(logger: Vec<Box<dyn SharedLogger>>) -> Box<CombinedLogger>
pub fn new(logger: Vec<Box<dyn SharedLogger>>) -> Box<CombinedLogger>
allows to create a new logger, that can be independently used, no matter whats globally set.
no macros are provided for this case and you probably
dont want to use this function, but init()
, if you dont want to build a CombinedLogger
.
Takes all used loggers as a Vector argument. The log level is automatically determined by the lowest log level used by the given loggers.
All loggers need to implement log::Log.
§Examples
let combined_logger = CombinedLogger::new(
vec![
TermLogger::new(LevelFilter::Debug, Config::default(), TerminalMode::Mixed, ColorChoice::Auto),
WriteLogger::new(LevelFilter::Info, Config::default(), File::create("my_rust_bin.log").unwrap())
]
);