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
8fn 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}