From 30fb5d8b278dbfba2fc19c9dd0e11751fd80aba6 Mon Sep 17 00:00:00 2001 From: wenzuhuai Date: Fri, 23 Jan 2026 09:34:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B0=86=E6=96=AD=E7=BD=91=E5=9C=BA?= =?UTF-8?q?=E6=99=AF=E7=9A=84=E9=94=99=E8=AF=AF=E6=97=A5=E5=BF=97=E9=99=8D?= =?UTF-8?q?=E7=BA=A7=E4=B8=BA=20debug=20=E7=BA=A7=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Error closing connection 降级为 debug(TLS 关闭错误是断网预期行为) - Write failed: batchBuffer is nil 降级为 debug - Write operation failed 降级为 debug - 避免长时间断网恢复时日志泛滥 --- Sources/Nats/NatsConnection.swift | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Sources/Nats/NatsConnection.swift b/Sources/Nats/NatsConnection.swift index 11504cc..07c0f77 100644 --- a/Sources/Nats/NatsConnection.swift +++ b/Sources/Nats/NatsConnection.swift @@ -987,7 +987,8 @@ class ConnectionHandler: ChannelInboundHandler { try result.get() self.fire(.disconnected) } catch { - logger.error("Error closing connection: \(error)") + // 降级为 debug:网络断开时 TLS 无法完成正常关闭握手是预期行为 + logger.debug("Connection closed with error (will reconnect): \(error)") } // Only start reconnect after disconnect is complete self.handleReconnect() @@ -1060,7 +1061,8 @@ class ConnectionHandler: ChannelInboundHandler { // Trigger reconnect to recover let currentState = state.withLockedValue { $0 } if currentState == .connected { - logger.error("Write failed: batchBuffer is nil but state is connected, triggering reconnect") + // 降级为 debug:这是断网恢复场景的正常状态 + logger.debug("Write failed: batchBuffer is nil, triggering reconnect") handleDisconnect() } throw NatsError.ClientError.invalidConnection("not connected") @@ -1071,7 +1073,8 @@ class ConnectionHandler: ChannelInboundHandler { // Trigger reconnect on write failure - connection may be broken let currentState = state.withLockedValue { $0 } if currentState == .connected { - logger.error("Write operation failed, triggering reconnect: \(error)") + // 降级为 debug:网络断开时写入失败是预期行为 + logger.debug("Write operation failed, triggering reconnect: \(error)") handleDisconnect() } throw NatsError.ClientError.io(error)