log/
log.rs

1#[macro_use] extern crate rust_util;
2
3use std::sync::mpsc::channel;
4use std::thread;
5use rust_util::{XResult, SimpleError};
6use rust_util::util_msg::{set_logger_sender, set_logger_std_out};
7
8// cargo run --example log
9fn main() -> XResult<()> {
10    let (sender, receiver) = channel::<String>();
11    set_logger_sender(sender);
12
13    let _t = thread::spawn(move || {
14        loop {
15            let msg = receiver.recv();
16            println!("[RECV]: {:?}", msg)
17        }
18    });
19
20    std::env::set_var("LOGGER_LEVEL", "*");
21    println!(r##"env LOGGER_LEVEL set to:
22debug or *
23info or ? -- default
24ok or #
25warn or !
26error or ^"##);
27
28    debugging!("Hello {}", "world!");
29    information!("Hello {}", "world!");
30    success!("Hello {}", "world!");
31    warning!("Hello {}", "world!");
32    failure!("Hello {}", "world!");
33
34    println!("{:?}", test_opt_result());
35
36    set_logger_std_out(false);
37    information!("Std err!");
38    warning!("Std err!");
39    set_logger_std_out(true);
40
41    simple_error!("helloworld {}", 1)
42}
43
44fn test_opt_result() -> XResult<()> {
45    let a = Err(SimpleError::new("test".into()));
46    opt_result!(a, "error: {}")
47}