1#[macro_export]
19macro_rules! async_traces {
20 ($logger:expr, $($arg:expr),+) => {
21 $crate::async_logs_common!($logger, $crate::LEVEL::Trace, $($arg),*);
22 };
23 () => {};
24}
25
26#[macro_export]
28macro_rules! async_debugs {
29 ($logger:expr, $($arg:expr),+) => {
30 $crate::async_logs_common!($logger, $crate::LEVEL::Debug, $($arg),*);
31 };
32 () => {};
33}
34
35#[macro_export]
37macro_rules! async_infos {
38 ($logger:expr, $($arg:expr),+) => {
39 $crate::async_logs_common!($logger, $crate::LEVEL::Info, $($arg),*);
40 };
41 () => {};
42}
43
44#[macro_export]
46macro_rules! async_warns {
47 ($logger:expr, $($arg:expr),+) => {
48 $crate::async_logs_common!($logger, $crate::LEVEL::Warn, $($arg),*);
49 };
50 () => {};
51}
52
53#[macro_export]
55macro_rules! async_errors {
56 ($logger:expr, $($arg:expr),+) => {
57 $crate::async_logs_common!($logger, $crate::LEVEL::Error, $($arg),*);
58 };
59 () => {};
60}
61
62#[macro_export]
64macro_rules! async_fatals {
65 ($logger:expr, $($arg:expr),+) => {
66 $crate::async_logs_common!($logger, $crate::LEVEL::Fatal, $($arg),*);
67 };
68 () => {};
69}
70
71#[macro_export]
72macro_rules! async_formats {
73 ($logger:expr, $level:expr, $($arg:expr),*) => {
74 unsafe {
75 let logger_lock:&mut Arc<tokio::sync::Mutex<tklog::Async::Logger>> = $logger;
76 let mut logger = logger_lock.as_ref().lock().await;
77 let level:$crate::LEVEL = $level;
78 let module = module_path!();
79 if logger.get_level(module) <= level {
80 let mut file = "";
81 let mut line = 0;
82 if logger.is_file_line($level,module) {
83 file = file!();
84 line = line!();
85 }
86 let ss = logger.fmt(module,$level, file, line, format!($($arg),*));
87 if !ss.is_empty(){
88 logger.print($level,module,ss.as_str()).await;
89 }
90 }
91 }
92 };
93 () => {};
94}
95
96#[macro_export]
97macro_rules! async_logs_common {
98 ($logger:expr, $level:expr, $($arg:expr),*) => {
99 unsafe {
100 let logger_lock:&mut Arc<tokio::sync::Mutex<tklog::Async::Logger>> = $logger;
101 let mut logger = logger_lock.as_ref().lock().await;
102 let module = module_path!();
103 if logger.get_level(module) <= $level {
104 let formatted_args: Vec<String> = vec![$(format!("{}", $arg)),*];
105 let mut file = "";
106 let mut line = 0;
107 if logger.is_file_line($level,module) {
108 file = file!();
109 line = line!();
110 }
111 let msg: String = formatted_args.join(logger.get_separator().as_str());
112 let ss = logger.fmt(module,$level, file, line, msg);
113 if !ss.is_empty(){
114 logger.print($level,module,ss.as_str()).await;
115 }
116 }
117 }
118 };
119 () => {};
120}