1#[macro_export]
2macro_rules! xdebug (
3 ($k:expr, #$tag:expr, $($args:tt)*) => {
4 let r = $crate::logger::LOGGERS.read();
5 if let Some(l) = r.get(&$k){
6 slog::log!(l, slog::Level::Debug, $tag, $($args)*)
7 }
8 };
9 ($k:expr, $($args:tt)*) => {
10 let r = $crate::logger::LOGGERS.read();
11 if let Some(l) = r.get(&$k){
12 slog::log!(l, slog::Level::Debug, "", $($args)*)
13 }
14 };
15);
16
17#[macro_export]
18macro_rules! xinfo (
19 ($k:expr, #$tag:expr, $($args:tt)*) => {
20 let r = $crate::logger::LOGGERS.read();
21 if let Some(l) = r.get(&$k){
22 slog::log!(l, slog::Level::Info, $tag, $($args)*)
23 }
24 };
25 ($k:expr, $($args:tt)*) => {
26 let r = $crate::logger::LOGGERS.read();
27 if let Some(l) = r.get(&$k){
28 slog::log!(l, slog::Level::Info, "", $($args)*)
29 }
30 };
31);
32
33#[macro_export]
34macro_rules! xwarn (
35 ($k:expr, #$tag:expr, $($args:tt)*) => {
36 let r = $crate::logger::LOGGERS.read();
37 if let Some(l) = r.get(&$k){
38 slog::log!(l, slog::Level::Warning, $tag, $($args)*)
39 }
40 };
41 ($k:expr, $($args:tt)*) => {
42 let r = $crate::logger::LOGGERS.read();
43 if let Some(l) = r.get(&$k){
44 slog::log!(l, slog::Level::Warning, "", $($args)*)
45 }
46 };
47);
48
49#[macro_export]
50macro_rules! xerror (
51 ($k:expr, #$tag:expr, $($args:tt)*) => {
52 let r = $crate::logger::LOGGERS.read();
53 if let Some(l) = r.get(&$k){
54 logx::log!(l, slog::Level::Error, $tag, $($args)*)
55 }
56 };
57 ($k:expr, $($args:tt)*) => {
58 let r = $crate::logger::LOGGERS.read();
59 if let Some(l) = r.get(&$k){
60 logx::log!(l, slog::Level::Error, "", $($args)*)
61 }
62 };
63);
64
65#[cfg(test)]
66mod logger_tests {
67 use crate::logger::Key;
68
69 #[test]
70 fn test_logger() {
71 xinfo!(Key::default(), "{}", "1234");
72 }
73}