Fix empty and different level naming

main
Piotr Zaczkowski 2024-07-25 12:56:55 +02:00 committed by Ethan Brierley
parent 4ea0e42bcd
commit d966ad89e5
1 changed files with 12 additions and 0 deletions

View File

@ -22,6 +22,7 @@ use ::log as LogTracing;
#[doc(hidden)]
// We need this macro because tracing expects the level to be const:
// https://github.com/tokio-rs/tracing/issues/2730
#[cfg(feature = "tracing")]
macro_rules! log_retry {
($level:expr, $($args:tt)*) => {{
match $level {
@ -34,6 +35,13 @@ macro_rules! log_retry {
}};
}
#[cfg(all(feature = "log", not(feature = "tracing")))]
macro_rules! log_retry {
($level:expr, $($args:tt)*) => {{
LogTracing::log!($level, $($args)*)
}};
}
/// `RetryTransientMiddleware` offers retry logic for requests that fail in a transient manner
/// and can be safely executed again.
///
@ -108,7 +116,10 @@ where
Self {
retry_policy,
retryable_strategy,
#[cfg(feature = "tracing")]
retry_log_level: LogLevel::WARN,
#[cfg(all(feature = "log", not(feature = "tracing")))]
retry_log_level: LogLevel::Warn,
}
}
}
@ -175,6 +186,7 @@ where
.duration_since(SystemTime::now())
.unwrap_or_else(|_| Duration::default());
// Sleep the requested amount before we try again.
#[cfg(any(feature = "log", feature = "tracing"))]
log_retry!(
self.retry_log_level,
"Retry attempt #{}. Sleeping {:?} before the next attempt",