#[cfg(feature = "tracing")]
pub(crate) use tracing::{Instrument, debug, info, info_span, trace, trace_span, warn};
#[cfg(not(feature = "tracing"))]
mod noop {
macro_rules! event {
($fmt:literal $(, $arg:expr)* $(,)?) => {
if false {
let _ = ::std::format_args!($fmt $(, $arg)*);
}
};
}
macro_rules! trace {
($($arg:tt)*) => { $crate::log::event!($($arg)*) };
}
macro_rules! debug {
($($arg:tt)*) => { $crate::log::event!($($arg)*) };
}
macro_rules! info {
($($arg:tt)*) => { $crate::log::event!($($arg)*) };
}
macro_rules! warn_event {
($($arg:tt)*) => { $crate::log::event!($($arg)*) };
}
macro_rules! trace_span {
($($arg:tt)*) => {
$crate::log::Span
};
}
macro_rules! info_span {
($($arg:tt)*) => {
$crate::log::Span
};
}
pub(crate) use debug;
pub(crate) use event;
pub(crate) use info;
pub(crate) use info_span;
pub(crate) use trace;
pub(crate) use trace_span;
pub(crate) use warn_event as warn;
}
#[cfg(not(feature = "tracing"))]
pub(crate) use noop::{debug, event, info, info_span, trace, trace_span, warn};
#[cfg(not(feature = "tracing"))]
pub(crate) struct Span;
#[cfg(not(feature = "tracing"))]
pub(crate) trait Instrument: Sized {
fn instrument(self, _span: Span) -> Self {
self
}
}
#[cfg(not(feature = "tracing"))]
impl<T> Instrument for T {}