#[macro_export]
macro_rules! log {
([$($modules:expr),*], $message:expr) => {
let prt = rotation_logger::LOG_SENDER.load(std::sync::atomic::Ordering::Acquire);
let modules = vec![$($modules.to_string()),+];
if !prt.is_null() {
unsafe {
let sender = &*prt;
let message = rotation_logger::Message::new(&modules, $message);
let _ = sender.send(message);
}
}
};
(($($modules:ident),*), $message:expr) => {{
let prt = rotation_logger::LOG_SENDER.load(std::sync::atomic::Ordering::Acquire);
if !prt.is_null() {
unsafe {
let sender = &*prt;
let modules = vec![$(stringify!($modules).to_string()),*];
let message = rotation_logger::Message::new(&modules, $message);
let _ = sender.send(message);
}
}
}};
($message:expr) => {
let prt = rotation_logger::LOG_SENDER.load(std::sync::atomic::Ordering::Acquire);
if !prt.is_null() {
unsafe {
let sender = &*prt;
let message = rotation_logger::Message::new(&vec![], $message);
let _ = sender.send(message);
}
}
};
}