From 14a94ff798d1f991ba7be169055bd75fdd3cdc74 Mon Sep 17 00:00:00 2001 From: Marvin Zhang Date: Fri, 12 Sep 2025 14:34:27 +0800 Subject: [PATCH] refactor: enhance error logging in writeLogLines to respect circuit breaker state --- core/task/handler/runner_log.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/task/handler/runner_log.go b/core/task/handler/runner_log.go index e3bb8c79..345b1cd5 100644 --- a/core/task/handler/runner_log.go +++ b/core/task/handler/runner_log.go @@ -54,6 +54,10 @@ func (r *Runner) writeLogLines(lines []string) { case <-r.ctx.Done(): return default: + // Only log the error if circuit breaker allows it to prevent flooding + if r.isLogCircuitClosed() { + r.Errorf("error sending log lines: %v", err) + } // Record failure and open circuit breaker if needed r.recordLogFailure() // Mark connection as unhealthy for reconnection @@ -180,7 +184,7 @@ func (r *Runner) recordLogFailure() { r.logConnHealthy = false r.logCircuitOpenTime = time.Now() // Log this through standard logger only (not through writeLogLines to avoid recursion) - r.Logger.Warn(fmt.Sprintf("log circuit breaker opened after %d failures, suppressing log sends for %v", + r.Logger.Warn(fmt.Sprintf("log circuit breaker opened after %d failures, suppressing log sends for %v", r.logFailureCount, r.logCircuitOpenDuration)) } }