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}