diff options
Diffstat (limited to 'src/buildtool/common/remote/retry.cpp')
-rw-r--r-- | src/buildtool/common/remote/retry.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/buildtool/common/remote/retry.cpp b/src/buildtool/common/remote/retry.cpp index 00d275cd..8c97bf38 100644 --- a/src/buildtool/common/remote/retry.cpp +++ b/src/buildtool/common/remote/retry.cpp @@ -15,6 +15,7 @@ #include "src/buildtool/common/remote/retry.hpp" #ifndef BOOTSTRAP_BUILD_TOOL +#include <algorithm> #include <chrono> #include <thread> @@ -22,7 +23,8 @@ auto WithRetry(CallableReturningRetryResponse const& f, RetryConfig const& retry_config, - Logger const& logger) noexcept -> bool { + Logger const& logger, + LogLevel fatal_log_level) noexcept -> bool { try { auto const& attempts = retry_config.GetMaxAttempts(); for (auto attempt = 1U; attempt <= attempts; ++attempt) { @@ -32,7 +34,7 @@ auto WithRetry(CallableReturningRetryResponse const& f, } if (fatal) { if (error_msg) { - logger.Emit(LogLevel::Error, "{}", *error_msg); + logger.Emit(fatal_log_level, "{}", *error_msg); } return false; } @@ -51,7 +53,7 @@ auto WithRetry(CallableReturningRetryResponse const& f, } else { if (error_msg) { - logger.Emit(LogLevel::Error, + logger.Emit(fatal_log_level, "After {} attempts: {}", attempt, *error_msg); @@ -59,7 +61,8 @@ auto WithRetry(CallableReturningRetryResponse const& f, } } } catch (...) { - logger.Emit(LogLevel::Error, "WithRetry: caught unknown exception"); + logger.Emit(std::min(fatal_log_level, LogLevel::Warning), + "WithRetry: caught unknown exception"); } return false; } |