refactor(logger): 日志改用 logrus 全局包级调用,移除 Logger 注入接口
为什么:并入宿主项目后须与宿主日志体系一致——宿主统一用 pkg/logger 初始化 logrus 全局实例并直接 logrus.Xxx 包级调用;包一层 Logger 接口会让 logrus 的 caller 定位(报告调用文件:行号)失准。 改动: - 删除 logger 包(Logger 接口 / Default / SetDefault,默认本就是 logrus.StandardLogger) - 11 个结构体移除 lgr logger.Logger 字段、SetLogger 方法及构造中的 lgr 初始化 - 192 处 lgr.Xxxf 调用改为 logrus.Xxxf,日志消息文本保持不变 - xiaomi.Client 移除 Logger() 访问器,air_conditioner 回读日志去掉判空调用直连 logrus - miot_i18n.go 两处标准库 log.Printf 改为 logrus.Errorf,统一日志出口 - go.mod:logrus 从 indirect 提升为直接依赖 - goimports/goformat 全树规范化:此前部分文件未 gofmt(单行 if、对齐),本次顺带 格式化,纯空白/换行变化,无逻辑改动 验证:go build / go vet / go test ./... 全部通过(bridge、miot、xiaomi、devices、specs)
This commit is contained in:
+21
-19
@@ -5,6 +5,8 @@ package miot
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
// ============================================================================
|
||||
@@ -44,7 +46,7 @@ func (c *MIoTClient) RefreshDeviceAllProps(did string) error {
|
||||
}
|
||||
}
|
||||
|
||||
c.lgr.Debugf("[MIoTClient] RefreshDeviceAllProps: %s → %d props enqueued\n", did, count)
|
||||
logrus.Debugf("[MIoTClient] RefreshDeviceAllProps: %s → %d props enqueued\n", did, count)
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -62,7 +64,7 @@ func (c *MIoTClient) RequestRefreshProp(did string, siid, piid int) {
|
||||
|
||||
// Check if already in refresh list
|
||||
if _, exists := c.refreshPropsList[key]; exists {
|
||||
c.lgr.Debugf("[MIoTClient] RequestRefreshProp: SKIPPED (already queued) %s\n", key)
|
||||
logrus.Debugf("[MIoTClient] RequestRefreshProp: SKIPPED (already queued) %s\n", key)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -74,7 +76,7 @@ func (c *MIoTClient) RequestRefreshProp(did string, siid, piid int) {
|
||||
|
||||
// Schedule refresh if not already scheduled
|
||||
if c.refreshPropsTimer == nil {
|
||||
c.lgr.Debugf("[MIoTClient] RequestRefreshProp: Scheduling refresh timer for %s\n", key)
|
||||
logrus.Debugf("[MIoTClient] RequestRefreshProp: Scheduling refresh timer for %s\n", key)
|
||||
// Reset retry count for new batch
|
||||
c.refreshRetryCount = 0
|
||||
|
||||
@@ -83,14 +85,14 @@ func (c *MIoTClient) RequestRefreshProp(did string, siid, piid int) {
|
||||
c.refreshPropsTimer = nil
|
||||
c.mu.Unlock()
|
||||
|
||||
c.lgr.Debugf("[MIoTClient] RequestRefreshProp: Timer fired, calling refreshPropsHandler()\n")
|
||||
logrus.Debugf("[MIoTClient] RequestRefreshProp: Timer fired, calling refreshPropsHandler()\n")
|
||||
c.refreshPropsHandler()
|
||||
})
|
||||
} else {
|
||||
c.lgr.Debugf("[MIoTClient] RequestRefreshProp: Timer already scheduled, added to queue: %s\n", key)
|
||||
logrus.Debugf("[MIoTClient] RequestRefreshProp: Timer already scheduled, added to queue: %s\n", key)
|
||||
}
|
||||
|
||||
c.lgr.Debugf("[MIoTClient] RequestRefreshProp: QUEUED %s (queue size: %d)\n", key, len(c.refreshPropsList))
|
||||
logrus.Debugf("[MIoTClient] RequestRefreshProp: QUEUED %s (queue size: %d)\n", key, len(c.refreshPropsList))
|
||||
}
|
||||
|
||||
// refreshPropsHandler handles property refresh from cloud.
|
||||
@@ -110,7 +112,7 @@ func (c *MIoTClient) refreshPropsHandler() {
|
||||
c.refreshPropsList = make(map[string]map[string]interface{})
|
||||
c.mu.Unlock()
|
||||
|
||||
c.lgr.Debugf("[MIoTClient] refreshPropsHandler: START, %d props to refresh\n", len(propsToRefresh))
|
||||
logrus.Debugf("[MIoTClient] refreshPropsHandler: START, %d props to refresh\n", len(propsToRefresh))
|
||||
|
||||
// Group props by source (cloud / gateway / lan)
|
||||
cloudParams := make([]PropParam, 0)
|
||||
@@ -190,12 +192,12 @@ func (c *MIoTClient) refreshPropsHandler() {
|
||||
batch := cloudParams[i:end]
|
||||
results, err := c.http.GetProps(batch)
|
||||
if err != nil {
|
||||
c.lgr.Errorf("[MIoTClient] refreshPropsHandler: cloud GetProps FAILED: %v\n", err)
|
||||
logrus.Errorf("[MIoTClient] refreshPropsHandler: cloud GetProps FAILED: %v\n", err)
|
||||
c.retryProps(propsToRefresh)
|
||||
return
|
||||
}
|
||||
allResults = append(allResults, results...)
|
||||
c.lgr.Debugf("[MIoTClient] refreshPropsHandler: cloud batch %d returned %d results\n", i/150+1, len(results))
|
||||
logrus.Debugf("[MIoTClient] refreshPropsHandler: cloud batch %d returned %d results\n", i/150+1, len(results))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -203,7 +205,7 @@ func (c *MIoTClient) refreshPropsHandler() {
|
||||
for groupID, params := range gatewayParams {
|
||||
mips, exists := c.mipsLocal[groupID]
|
||||
if !exists {
|
||||
c.lgr.Infof("[MIoTClient] refreshPropsHandler: gateway %s not found, routing to cloud\n", groupID)
|
||||
logrus.Infof("[MIoTClient] refreshPropsHandler: gateway %s not found, routing to cloud\n", groupID)
|
||||
// Fallback to cloud
|
||||
if c.http != nil {
|
||||
results, err := c.http.GetProps(params)
|
||||
@@ -215,7 +217,7 @@ func (c *MIoTClient) refreshPropsHandler() {
|
||||
}
|
||||
results, err := mips.GetProps(params, MipsRequestTimeoutDefault*time.Millisecond)
|
||||
if err != nil {
|
||||
c.lgr.Errorf("[MIoTClient] refreshPropsHandler: gateway %s GetProps FAILED: %v\n", groupID, err)
|
||||
logrus.Errorf("[MIoTClient] refreshPropsHandler: gateway %s GetProps FAILED: %v\n", groupID, err)
|
||||
// Fallback to cloud
|
||||
if c.http != nil {
|
||||
results, err := c.http.GetProps(params)
|
||||
@@ -226,7 +228,7 @@ func (c *MIoTClient) refreshPropsHandler() {
|
||||
continue
|
||||
}
|
||||
allResults = append(allResults, results...)
|
||||
c.lgr.Debugf("[MIoTClient] refreshPropsHandler: gateway %s returned %d results\n", groupID, len(results))
|
||||
logrus.Debugf("[MIoTClient] refreshPropsHandler: gateway %s returned %d results\n", groupID, len(results))
|
||||
}
|
||||
|
||||
// LAN source
|
||||
@@ -235,7 +237,7 @@ func (c *MIoTClient) refreshPropsHandler() {
|
||||
if ok {
|
||||
results, err := lan.GetProps(lanParams)
|
||||
if err != nil {
|
||||
c.lgr.Errorf("[MIoTClient] refreshPropsHandler: LAN GetProps FAILED: %v\n", err)
|
||||
logrus.Errorf("[MIoTClient] refreshPropsHandler: LAN GetProps FAILED: %v\n", err)
|
||||
// Fallback to cloud
|
||||
if c.http != nil {
|
||||
results, err := c.http.GetProps(lanParams)
|
||||
@@ -245,7 +247,7 @@ func (c *MIoTClient) refreshPropsHandler() {
|
||||
}
|
||||
} else {
|
||||
allResults = append(allResults, results...)
|
||||
c.lgr.Debugf("[MIoTClient] refreshPropsHandler: LAN returned %d results\n", len(results))
|
||||
logrus.Debugf("[MIoTClient] refreshPropsHandler: LAN returned %d results\n", len(results))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -255,17 +257,17 @@ func (c *MIoTClient) refreshPropsHandler() {
|
||||
c.refreshRetryCount = 0
|
||||
c.mu.Unlock()
|
||||
|
||||
c.lgr.Debugf("[MIoTClient] refreshPropsHandler: total %d results\n", len(allResults))
|
||||
logrus.Debugf("[MIoTClient] refreshPropsHandler: total %d results\n", len(allResults))
|
||||
|
||||
// Dispatch results to subscribers
|
||||
for _, result := range allResults {
|
||||
if result.Code != 0 {
|
||||
c.lgr.Errorf("[MIoTClient] refreshPropsHandler: FAILED %s/%d/%d, code=%d (%s)\n",
|
||||
logrus.Errorf("[MIoTClient] refreshPropsHandler: FAILED %s/%d/%d, code=%d (%s)\n",
|
||||
result.DID, result.Siid, result.Piid, result.Code, ErrDesc(result.Code))
|
||||
continue
|
||||
}
|
||||
|
||||
c.lgr.Debugf("[MIoTClient] refreshPropsHandler: SUCCESS %s/%d/%d = %v\n", result.DID, result.Siid, result.Piid, result.Value)
|
||||
logrus.Debugf("[MIoTClient] refreshPropsHandler: SUCCESS %s/%d/%d = %v\n", result.DID, result.Siid, result.Piid, result.Value)
|
||||
params := map[string]interface{}{
|
||||
"did": result.DID,
|
||||
"siid": result.Siid,
|
||||
@@ -284,7 +286,7 @@ func (c *MIoTClient) retryProps(props []map[string]interface{}) {
|
||||
c.mu.Unlock()
|
||||
|
||||
if retryCount >= RefreshPropsRetryMax {
|
||||
c.lgr.Infof("[MIoTClient] refreshPropsHandler: GIVING UP after %d retries\n", retryCount)
|
||||
logrus.Infof("[MIoTClient] refreshPropsHandler: GIVING UP after %d retries\n", retryCount)
|
||||
c.mu.Lock()
|
||||
c.refreshPropsList = make(map[string]map[string]interface{})
|
||||
c.refreshRetryCount = 0
|
||||
@@ -292,7 +294,7 @@ func (c *MIoTClient) retryProps(props []map[string]interface{}) {
|
||||
return
|
||||
}
|
||||
|
||||
c.lgr.Infof("[MIoTClient] refreshPropsHandler: RETRYING (%d/%d)\n", retryCount, RefreshPropsRetryMax)
|
||||
logrus.Infof("[MIoTClient] refreshPropsHandler: RETRYING (%d/%d)\n", retryCount, RefreshPropsRetryMax)
|
||||
c.mu.Lock()
|
||||
for _, prop := range props {
|
||||
key := fmt.Sprintf("%s|%d|%d", prop["did"].(string), prop["siid"].(int), prop["piid"].(int))
|
||||
|
||||
Reference in New Issue
Block a user