1#![doc(
2    html_logo_url = "https://github.com/Layr-Labs/eigensdk-rs/assets/91280922/bd13caec-3c00-4afc-839a-b83d2890beb5",
3    issue_tracker_base_url = "https://github.com/Layr-Labs/eigensdk-rs/issues/"
4)]
5#![cfg_attr(not(test), warn(unused_crate_dependencies))]
6
7pub mod log_level;
8pub mod logger;
9pub mod noop_logger;
10pub mod tracing_logger;
11pub static COMPONENT_KEY: &str = "component";
12use ctor::ctor;
13use log_level::LogLevel;
14use logger::Logger;
15use noop_logger::NoopLogger;
16use once_cell::sync::OnceCell;
17use std::sync::Arc;
18use tracing_logger::TracingLogger;
19
20static TEST_LOGGER: OnceCell<Arc<(dyn Logger + 'static)>> = OnceCell::new();
22
23static LOGGER: OnceCell<Arc<(dyn Logger + 'static)>> = OnceCell::new();
25
26#[ctor]
28fn init_test_logger() {
29    TEST_LOGGER.get_or_init(|| {
30        NoopLogger::new_text_logger(false, String::from(""), LogLevel::Debug, false)
31    });
32}
33
34pub fn get_test_logger() -> Arc<dyn Logger> {
36    TEST_LOGGER.get().expect("Logger not initialized").clone()
37}
38
39pub fn init_logger(log_level: LogLevel) {
42    LOGGER
43        .get_or_init(|| TracingLogger::new_text_logger(false, String::from(""), log_level, false));
44}
45
46pub fn get_logger() -> Arc<dyn Logger> {
48    LOGGER.get().expect("Logger not initialized").clone()
49}