refactor(dingtalk): improve logging with structured fields
Convert format string logging to structured key-value logging for better log parsing and analysis in health check and recovery functions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
232abb4922
commit
3f96ccaec9
1 changed files with 12 additions and 4 deletions
|
|
@ -128,10 +128,14 @@ func (c *DingTalkChannel) checkAndRecover() {
|
|||
silenceDuration := time.Since(c.lastMessageTime)
|
||||
c.mu.RUnlock()
|
||||
|
||||
logger.DebugCF("dingtalk", "Health check: silence duration %v", silenceDuration)
|
||||
logger.DebugCF("dingtalk", "Health check: silence duration", map[string]any{"duration": silenceDuration})
|
||||
|
||||
if silenceDuration >= maxSilenceDuration {
|
||||
logger.InfoCF("dingtalk", "Connection appears stale (no messages for %v), triggering recovery", silenceDuration)
|
||||
logger.InfoCF(
|
||||
"dingtalk",
|
||||
"Connection appears stale (no messages for configured duration), triggering recovery",
|
||||
map[string]any{"silenceDuration": silenceDuration},
|
||||
)
|
||||
c.recoverConnection()
|
||||
}
|
||||
}
|
||||
|
|
@ -155,14 +159,18 @@ func (c *DingTalkChannel) recoverConnection() {
|
|||
|
||||
err := c.startStreamClient()
|
||||
if err == nil {
|
||||
logger.InfoCF("dingtalk", "Connection recovered successfully")
|
||||
logger.InfoCF("dingtalk", "Connection recovered successfully", map[string]any{})
|
||||
c.mu.Lock()
|
||||
c.lastMessageTime = time.Now()
|
||||
c.mu.Unlock()
|
||||
return
|
||||
}
|
||||
|
||||
logger.WarnCF("dingtalk", "Recovery failed: %v, retrying in %v", err, recoveryRetryDelay)
|
||||
logger.WarnCF(
|
||||
"dingtalk",
|
||||
"Recovery failed, retrying",
|
||||
map[string]any{"error": err, "retryDelay": recoveryRetryDelay},
|
||||
)
|
||||
time.Sleep(recoveryRetryDelay)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue