Skip to main content

poly2/
poly2.rs

1use log::{trace,debug,info,warn,error};
2use log::LevelFilter;
3use poly_logger::{PolyLogger,StderrLogger};
4
5fn main() {
6    // Create a few terminal loggers
7    let mut tl0 = StderrLogger::new(LevelFilter::Debug);
8    tl0.msg_format("TL0: {timestamp} - {level} - {args}");
9
10    let mut tl1 = StderrLogger::new(LevelFilter::Info);
11    tl1.msg_format("TL1: {timestamp} - {level} - {args}");
12
13    let mut tl2 = StderrLogger::new(LevelFilter::Warn);
14    tl2.msg_format("TL2: {timestamp} - {level} - {args}");
15
16    // Put one one terminal logger into one poly_logger
17    let mut pl0 = PolyLogger::new();
18    pl0.add(tl0);
19
20    // Put other terminal loggers into another poly_logger
21    let mut pl1 = PolyLogger::new();
22    pl1.add(tl1);
23    pl1.add(tl2);
24
25    // Put second poly_logger into the first poly_logger
26    // which is the one we actually register with the 
27    // log system via init().
28    // Not sure if this would ever make sense, but hey...
29    pl0.add(pl1);
30    pl0.init().unwrap();
31
32    trace!("This is an TRACE message");
33    eprintln!("------------------------------");
34    debug!("This is a DEBUG message");
35    eprintln!("------------------------------");
36    info!("This is an INFO message");
37    eprintln!("------------------------------");
38    warn!("This is a WARN message");
39    eprintln!("------------------------------");
40    error!("This is an ERROR message");
41}
42