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)
|
silenceDuration := time.Since(c.lastMessageTime)
|
||||||
c.mu.RUnlock()
|
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 {
|
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()
|
c.recoverConnection()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -155,14 +159,18 @@ func (c *DingTalkChannel) recoverConnection() {
|
||||||
|
|
||||||
err := c.startStreamClient()
|
err := c.startStreamClient()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
logger.InfoCF("dingtalk", "Connection recovered successfully")
|
logger.InfoCF("dingtalk", "Connection recovered successfully", map[string]any{})
|
||||||
c.mu.Lock()
|
c.mu.Lock()
|
||||||
c.lastMessageTime = time.Now()
|
c.lastMessageTime = time.Now()
|
||||||
c.mu.Unlock()
|
c.mu.Unlock()
|
||||||
return
|
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)
|
time.Sleep(recoveryRetryDelay)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue