1use cfg_if::cfg_if;
17
18cfg_if! {
19 if #[cfg(feature = "advance")] {
20 #[macro_export(local_inner_macros)]
21 macro_rules! log {
22 (target: $target:expr, $lvl:expr, $($key:ident = $value:expr),* ; $fmt:expr, $($arg:tt)+) => {
23 $crate::advance::log($target.to_string().as_bytes(), __log_format_args!($fmt, $($arg)+).to_string().as_bytes(), $lvl);
24 };
25 (target: $target:expr, $lvl:expr, $($arg:tt)+) => ({
26 $crate::advance::log($target.to_string().as_bytes(), __log_format_args!($($arg)+).to_string().as_bytes(), $lvl);
27 });
28 ($lvl:expr, $($arg:tt)+) => ({
29 log!(target: __log_format_args!("{}:{}", __log_file!(), __log_line!()), $lvl, $($arg)+)
30 });
31 ($($arg:tt)+) => ({
32 log!(target: __log_format_args!("{}:{}", __log_file!(), __log_line!()), $crate::types::LogLevel::INFO, $($arg)+)
33 });
34 () => {
35 log!("")
36 }
37 }
38 } else {
39 #[macro_export(local_inner_macros)]
40 macro_rules! log {
41 (target: $target:expr, $lvl:expr, $($key:ident = $value:expr),* ; $fmt:expr, $($arg:tt)+) => {
42 $crate::normal::log($target.to_string().as_bytes(), __log_format_args!($fmt, $($arg)+).to_string().as_bytes(), $lvl);
43 };
44 (target: $target:expr, $lvl:expr, $($arg:tt)+) => ({
45 $crate::normal::log($target.to_string().as_bytes(), __log_format_args!($($arg)+).to_string().as_bytes(), $lvl);
46 });
47 ($lvl:expr, $($arg:tt)+) => ({
48 log!(target: __log_format_args!("{}:{}", __log_file!(), __log_line!()), $lvl, $($arg)+)
49 });
50 ($($arg:tt)+) => ({
51 log!(target: __log_format_args!("{}:{}", __log_file!(), __log_line!()), $crate::types::LogLevel::INFO, $($arg)+)
52 });
53 () => {
54 log!("")
55 }
56 }
57 }
58}
59
60#[macro_export(local_inner_macros)]
73macro_rules! critical {
74 ($($arg:tt)+) => ({
75 log!($crate::types::LogLevel::CRITICAL, $($arg)+)
76 });
77 () => ({
78 log!($crate::types::LogLevel::CRITICAL, "")
79 });
80}
81
82#[macro_export(local_inner_macros)]
92macro_rules! error {
93 ($($arg:tt)+) => (
94 log!($crate::types::LogLevel::ERROR, $($arg)+)
95 );
96 () => (
97 log!($crate::types::LogLevel::ERROR, "")
98 );
99}
100
101#[macro_export(local_inner_macros)]
111macro_rules! warning {
112 ($($arg:tt)+) => (
113 log!($crate::types::LogLevel::WARNING, $($arg)+)
114 );
115 () => (
116 log!($crate::types::LogLevel::WARNING, "")
117 );
118}
119
120#[macro_export(local_inner_macros)]
130macro_rules! notice {
131 ($($arg:tt)+) => (
132 log!($crate::types::LogLevel::NOTICE, $($arg)+)
133 );
134 () => (
135 log!($crate::types::LogLevel::NOTICE, "")
136 );
137}
138
139#[macro_export(local_inner_macros)]
149macro_rules! info {
150 ($($arg:tt)+) => (
151 log!($crate::types::LogLevel::INFO, $($arg)+)
152 );
153 () => (
154 log!($crate::types::LogLevel::INFO, "")
155 );
156}
157
158#[macro_export(local_inner_macros)]
168macro_rules! debug {
169 ($($arg:tt)+) => (
170 log!($crate::types::LogLevel::DEBUG, $($arg)+)
171 );
172 () => (
173 log!($crate::types::LogLevel::DEBUG, "")
174 );
175}
176
177#[doc(hidden)]
178#[macro_export]
179macro_rules! __log_format_args {
180 ($($args:tt)*) => {
181 format_args!($($args)*)
182 };
183}
184
185#[doc(hidden)]
186#[macro_export]
187macro_rules! __log_file {
188 () => {
189 file!()
190 };
191}
192
193#[doc(hidden)]
194#[macro_export]
195macro_rules! __log_line {
196 () => {
197 line!()
198 };
199}