refactor: simplify warn! and error! macros (#2503)

* refactor: simplify the error! and warn! macros

Signed-off-by: Ruihang Xia <waynestxia@gmail.com>

* support display format

Signed-off-by: Ruihang Xia <waynestxia@gmail.com>

* err.msg to err

Signed-off-by: Ruihang Xia <waynestxia@gmail.com>

---------

Signed-off-by: Ruihang Xia <waynestxia@gmail.com>
This commit is contained in:
Ruihang Xia
2023-09-27 11:07:03 +08:00
committed by GitHub
parent db6ceda5f0
commit fbe2f2df46

View File

@@ -38,35 +38,38 @@ macro_rules! error {
// error!(e; target: "my_target", "a {} event", "log")
($e:expr; target: $target:expr, $($arg:tt)+) => ({
use $crate::common_error::ext::ErrorExt;
use $crate::common_error::ext::StackError;
let mut stacks = vec![];
$e.debug_fmt(0, &mut stacks);
let stacks = stacks.join("\n");
$crate::log!(
target: $target,
$crate::logging::Level::ERROR,
err.msg = %stacks,
err.code = %$e.status_code(),
err = ?$e,
$($arg)+
)
});
// error!(%e; target: "my_target", "a {} event", "log")
(%$e:expr; target: $target:expr, $($arg:tt)+) => ({
$crate::log!(
target: $target,
$crate::logging::Level::ERROR,
err = %$e,
$($arg)+
)
});
// error!(e; "a {} event", "log")
($e:expr; $($arg:tt)+) => ({
use $crate::common_error::ext::ErrorExt;
use $crate::common_error::ext::StackError;
let mut stacks = vec![];
$e.debug_fmt(0, &mut stacks);
let stacks = stacks.join("\n");
$crate::log!(
$crate::logging::Level::ERROR,
err.msg = %stacks,
err.code = %$e.status_code(),
err = ?$e,
$($arg)+
)
});
// error!(%e; "a {} event", "log")
(%$e:expr; $($arg:tt)+) => ({
$crate::log!(
$crate::logging::Level::ERROR,
err = %$e,
$($arg)+
)
});
@@ -87,17 +90,18 @@ macro_rules! warn {
// warn!(e; "a {} event", "log")
($e:expr; $($arg:tt)+) => ({
use $crate::common_error::ext::ErrorExt;
use $crate::common_error::ext::StackError;
let mut stacks = vec![];
$e.debug_fmt(0, &mut stacks);
let stacks = stacks.join("\n");
$crate::log!(
$crate::logging::Level::WARN,
err.msg = %$e,
err.code = %$e.status_code(),
err = ?$e,
$($arg)+
)
});
// warn!(%e; "a {} event", "log")
(%$e:expr; $($arg:tt)+) => ({
$crate::log!(
$crate::logging::Level::WARN,
err = %$e,
$($arg)+
)
});
@@ -221,8 +225,10 @@ mod tests {
error!(target: "my_target", "hello {}", "world");
// Supports both owned and reference type.
error!(err; target: "my_target", "hello {}", "world");
error!(%err; target: "my_target", "hello {}", "world");
error!(err_ref; target: "my_target", "hello {}", "world");
error!(err_ref2; "hello {}", "world");
error!(%err_ref2; "hello {}", "world");
error!("hello {}", "world");
let root_err = MockError::with_source(err);