sentinel_core/
logging.rs

1use cfg_if::cfg_if;
2use lazy_static::lazy_static;
3pub use log::{debug, error, info, trace, warn};
4use std::sync::Once;
5
6lazy_static! {
7    pub static ref FREQUENT_ERROR_ONCE: Once = Once::new();
8}
9
10cfg_if! {
11    if #[cfg(feature = "logger_env")] {
12        use env_logger;
13        use crate::config::DEFAULT_LOG_LEVEL;
14        fn init_env_logger() {
15            env_logger::Builder::from_env(env_logger::Env::default().default_filter_or(DEFAULT_LOG_LEVEL))
16                .init();
17        }
18        pub fn logger_init(_: Option<String>) {
19            init_env_logger();
20        }
21    }
22    else if #[cfg(feature = "logger_log4rs")] {
23        use log4rs;
24        use std::path::Path;
25        fn init_log4rs(file_name: Option<String>) {
26            let file_name = file_name.expect("Must provide a configuration file for log4rs crate");
27            let path = Path::new(&file_name);
28            if path.exists() {
29                log4rs::init_file(path, Default::default()).unwrap();
30            }
31        }
32        pub fn logger_init(file_name: Option<String>) {
33            init_log4rs(file_name);
34        }
35    }else{
36        pub fn logger_init(_: Option<String>) {}
37    }
38}