sustenet_shared/
logging.rs1pub enum LogLevel {
2 Debug,
3 Info,
4 Warning,
5 Error,
6 Success,
7}
8
9pub enum LogType {
10 Master,
11 Cluster,
12 Client,
13 System,
14}
15
16#[macro_export]
17macro_rules! log_message {
18 (
19 $level:expr,
20 $type:expr,
21 $($arg:tt)*
22 ) => {
23 {
24 use $crate::logging::LogLevel;
25 use $crate::logging::LogType;
26 use $crate::utils::constants::{
27 TERMINAL_BLUE,
28 TERMINAL_GREEN,
29 TERMINAL_ORANGE,
30 TERMINAL_RED,
31 TERMINAL_DEFAULT,
32 };
33
34 let level_str = match $level {
35 LogLevel::Debug => format!("{}[DEBUG]", TERMINAL_BLUE),
36 LogLevel::Info => format!("{}[INFO]", TERMINAL_DEFAULT),
37 LogLevel::Warning => format!("{}[WARNING]", TERMINAL_ORANGE),
38 LogLevel::Error => format!("{}[ERROR]", TERMINAL_RED),
39 LogLevel::Success => format!("{}[SUCCESS]", TERMINAL_GREEN),
40 };
41
42 let type_str = match $type {
43 LogType::Master => "[Master]",
44 LogType::Cluster => "[Cluster]",
45 LogType::Client => "[Client]",
46 LogType::System => "[System]",
47 };
48
49 println!("{}{} {}{}", level_str, type_str, format!($($arg)*), TERMINAL_DEFAULT);
50 }
51 };
52}