#[macro_export]
macro_rules! traces {
($logger:expr, $($arg:expr),+) => {
$crate::logs_common!($logger, $crate::LEVEL::Trace, $($arg),*);
};
() => {};
}
#[macro_export]
macro_rules! debugs {
($logger:expr, $($arg:expr),+) => {
$crate::logs_common!($logger, $crate::LEVEL::Debug, $($arg),*);
};
() => {};
}
#[macro_export]
macro_rules! infos {
($logger:expr, $($arg:expr),+) => {
$crate::logs_common!($logger, $crate::LEVEL::Info, $($arg),*);
};
() => {};
}
#[macro_export]
macro_rules! warns {
($logger:expr, $($arg:expr),+) => {
$crate::logs_common!($logger, $crate::LEVEL::Warn, $($arg),*);
};
() => {};
}
#[macro_export]
macro_rules! errors {
($logger:expr, $($arg:expr),+) => {
$crate::logs_common!($logger, $crate::LEVEL::Error, $($arg),*);
};
() => {};
}
#[macro_export]
macro_rules! fatals {
($logger:expr, $($arg:expr),+) => {
$crate::logs_common!($logger, $crate::LEVEL::Fatal, $($arg),*);
};
() => {};
}
#[macro_export]
macro_rules! formats {
($logger:expr, $level:expr, $($arg:expr),*) => {
let level:$crate::LEVEL = $level;
unsafe {
let log:&mut Arc<Mutex<tklog::sync::Logger>> = $logger;
let mut logger = log.lock().unwrap();
let module = module_path!();
if logger.get_level(module) <= level {
let mut file = "";
let mut line = 0;
if logger.is_file_line(module) {
file = file!();
line = line!();
}
let ss = logger.fmt(module,$level, file, line, format!($($arg),*));
logger.print(module,ss.as_str());
}
}
};
() => {};
}
#[macro_export]
macro_rules! logs_common {
($logger:expr, $level:expr, $($arg:expr),*) => {
unsafe {
let log:&mut Arc<Mutex<tklog::sync::Logger>> = $logger;
let mut logger = log.lock().unwrap();
let module = module_path!();
if logger.get_level(module) <= $level {
let formatted_args: Vec<String> = vec![$(format!("{}", $arg)),*];
let mut file = "";
let mut line = 0;
if logger.is_file_line(module) {
file = file!();
line = line!();
}
let msg: String = formatted_args.join(",");
let ss = logger.fmt(module,$level, file, line, msg);
logger.print(module, ss.as_str());
}
}
};
() => {};
}