file_and_stdout_different_levels/
different-levels.rs1use std::{path::PathBuf, thread};
2
3use rslogger::Logger;
4use log::{info, warn, error, trace};
5
6fn main() {
7 Logger::new()
8 .with_level(log::LevelFilter::Trace)
9 .with_local_timestamps()
10 .with_thread()
11 .add_writer_stdout(true, Some(1000))
12 .add_writer_file_with_level(PathBuf::from("./LOGS/genercs_1.log"), true, Some(10), log::LevelFilter::Error)
14 .add_writer_file_with_level(PathBuf::from("./LOGS/genercs_2.log"), true, Some(10000), log::LevelFilter::Info)
16 .add_writer_file(PathBuf::from("./LOGS/genercs_3.log"), true, None)
18 .add_writer_stdout(false, None)
19 .init().unwrap();
20
21 let handler1 = thread::Builder::new().spawn(move | | {
22 for i in 0..10 {
23 info!("This is a info, i: {i}");
24 }
25 }).unwrap();
26
27 let handler2 = thread::Builder::new().spawn(move | | {
28 for i in 0..10 {
29 info!("This is a info, i: {i}");
30 }
31 }).unwrap();
32
33 warn!("Warning on main!");
34 error!("This is traced on genercs_1.log");
35 info!("This is traced on genercs_2.log but not on genercs_1.log");
36 trace!("This is traced on genercs_3.log but not on genercs_1/2.log");
37
38 handler1.join().unwrap();
39 handler2.join().unwrap();
40
41 log::logger().flush();
42}