Fix empty and different level naming

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