mod as_console_error;
mod console;
mod console_fields;
mod console_format;
mod console_init_error;
mod failure;
mod output_format;
pub use console::Console;
pub use console_init_error::ConsoleInitError;
pub use failure::Failure;
pub use output_format::OutputFormat;
#[doc(hidden)]
pub use tracing as __tracing;
#[doc(hidden)]
pub use as_console_error::AsConsoleError as __AsConsoleError;
#[macro_export]
macro_rules! failure {
(target: $target:expr, $failure:expr, $($message:tt)+) => {{
use $crate::__AsConsoleError as _;
let failure = &$failure;
$crate::__tracing::error!(
target: $target,
error = (*failure.error()).console_error(),
backtrace = failure.captured_backtrace().map($crate::__tracing::field::display),
span_trace = failure.span_trace(),
$($message)+
);
}};
($failure:expr, $($message:tt)+) => {
$crate::failure!(target: module_path!(), $failure, $($message)+)
};
}
#[track_caller]
pub fn init() {
try_init().expect("could not initialize the console");
}
pub fn try_init() -> Result<(), ConsoleInitError> {
Console::default().with_env_filter()?.try_init()?;
Ok(())
}