归档
This commit is contained in:
@@ -0,0 +1,163 @@
|
||||
- **`internal/infra/database/storage.go` (`database.Storage`)**
|
||||
- **工厂函数改造 (`NewStorage`)**:
|
||||
- [x] 修改函数签名,移除 `logger *logs.Logger` 参数,改为接收 `ctx context.Context`。
|
||||
- [x] 在函数内部,将接收到的 `ctx` 作为第一个参数传递给 `NewPostgresStorage` 函数。
|
||||
- **`internal/infra/database/postgres.go`**
|
||||
- **结构体改造**:
|
||||
- [x] 移除 `PostgresStorage` 结构体中的 `logger *logs.Logger` 成员。
|
||||
- [x] 新增 `selfCtx context.Context` 成员。
|
||||
- **构造函数改造 (`NewPostgresStorage`)**:
|
||||
- [x] 修改函数签名,移除 `logger *logs.Logger` 参数,改为接收 `ctx context.Context`。
|
||||
- [x] 在函数内部,为 `PostgresStorage` 创建其专属的 `selfCtx`:
|
||||
`selfCtx := logs.AddCompName(ctx, "PostgresStorage")`。
|
||||
- [x] 将这个 `selfCtx` 赋值给 `PostgresStorage` 结构体的 `selfCtx` 成员。
|
||||
- **公共方法改造 (`Connect`, `Disconnect`, `Migrate`)**:
|
||||
- [x] 修改方法签名,添加 `ctx context.Context` 作为第一个参数。
|
||||
- [x] 在方法入口处,使用 `newCtx, logger := logs.Trace(ctx, ps.selfCtx, "MethodName")` 获取新的
|
||||
`context.Context` 和 `logger` 实例。
|
||||
- [x] 将所有对 `ps.logger.Info`, `ps.logger.Errorw`, `ps.logger.Debugw` 的调用替换为 `logger.Info`,
|
||||
`logger.Errorw`, `logger.Debugw`。
|
||||
- [x] 在 `Connect` 方法中,调用 `logs.NewGormLogger` 时,将 `newCtx` 传递给它。
|
||||
- [x] 在 `Connect` 方法中,调用 `gorm.Open` 时,使用
|
||||
`ps.db, err = gorm.Open(postgres.Open(ps.connectionString), &gorm.Config{Logger: logs.NewGormLogger(newCtx)})`。
|
||||
- [x] 在 `Migrate` 方法中,确保所有对 `ps.db.AutoMigrate` 和 `ps.db.Exec` 的调用都使用 `newCtx`。
|
||||
- **内部辅助方法改造 (`setupTimescaleDB`, `creatingHyperTable`, `applyCompressionPolicies`, `creatingIndex`)**:
|
||||
- [x] 修改方法签名,添加 `ctx context.Context` 作为第一个参数。
|
||||
- [x] 在每个方法入口处,使用 `newCtx, logger := logs.Trace(ctx, ps.selfCtx, "MethodName")` 获取新的
|
||||
`context.Context` 和 `logger` 实例。
|
||||
- [x] 将所有对 `ps.logger.Info`, `ps.logger.Errorw`, `ps.logger.Debugw`, `ps.logger.Warnw`, `ps.logger.Debug`
|
||||
的调用替换为 `logger.Info`, `logger.Errorw`, `logger.Debugw`, `logger.Warnw`, `logger.Debug`。
|
||||
- [x] 确保所有对 `ps.db.Exec` 的调用都使用 `newCtx`。
|
||||
|
||||
- **`internal/infra/notify/log_notifier.go` (`notify.LogNotifier`)**
|
||||
- **结构体改造**:
|
||||
- [x] 移除 `logNotifier` 结构体中的 `logger *logs.Logger` 成员。
|
||||
- [x] 新增 `selfCtx context.Context` 成员。
|
||||
- **构造函数改造 (`NewLogNotifier`)**:
|
||||
- [x] 修改函数签名,移除 `logger *logs.Logger` 参数,改为接收 `ctx context.Context`。
|
||||
- [x] 在函数内部,为 `logNotifier` 创建其专属的 `selfCtx`:`selfCtx := logs.AddCompName(ctx, "LogNotifier")`。
|
||||
- [x] 将这个 `selfCtx` 赋值给 `logNotifier` 结构体的 `selfCtx` 成员。
|
||||
- **公共方法改造 (`Send`)**:
|
||||
- [x] 修改方法签名,添加 `ctx context.Context` 作为第一个参数。
|
||||
- [x] 在方法入口处,使用 `newCtx, logger := logs.Trace(ctx, l.selfCtx, "Send")` 获取新的 `context.Context` 和
|
||||
`logger` 实例。
|
||||
- [x] 将所有对 `l.logger.Infow` 的调用替换为 `logger.Infow`。
|
||||
- **公共方法 (`Type`)**:
|
||||
- [x] 此方法不涉及日志或上下文传递,无需改造。
|
||||
- **`internal/infra/notify/lark.go` (`notify.LarkNotifier`)**
|
||||
- **结构体改造**:
|
||||
- [x] 新增 `selfCtx context.Context` 成员。
|
||||
- **构造函数改造 (`NewLarkNotifier`)**:
|
||||
- [x] 修改函数签名,添加 `ctx context.Context` 作为第一个参数。
|
||||
- [x] 在函数内部,为 `larkNotifier` 创建其专属的 `selfCtx`:`selfCtx := logs.AddCompName(ctx, "LarkNotifier")`。
|
||||
- [x] 将这个 `selfCtx` 赋值给 `larkNotifier` 结构体的 `selfCtx` 成员。
|
||||
- **公共方法改造 (`Send`)**:
|
||||
- [x] 修改方法签名,添加 `ctx context.Context` 作为第一个参数。
|
||||
- [x] 在方法入口处,使用 `newCtx, logger := logs.Trace(ctx, l.selfCtx, "Send")` 获取新的 `context.Context` 和
|
||||
`logger` 实例。
|
||||
- [x] 将所有内部的错误日志(例如 `fmt.Errorf` 返回的错误,以及 `getAccessToken` 中的错误)通过 `logger.Errorf`
|
||||
记录。
|
||||
- **内部辅助方法改造 (`getAccessToken`)**:
|
||||
- [x] 修改方法签名,添加 `ctx context.Context` 作为第一个参数。
|
||||
- [x] 在方法入口处,使用 `newCtx, logger := logs.Trace(ctx, l.selfCtx, "getAccessToken")` 获取新的
|
||||
`context.Context` 和 `logger` 实例。
|
||||
- [x] 将所有内部的错误日志通过 `logger.Errorf` 记录。
|
||||
- **`internal/infra/notify/smtp.go` (`notify.SMTPNotifier`)**
|
||||
- **结构体改造**:
|
||||
- [x] 新增 `selfCtx context.Context` 成员。
|
||||
- **构造函数改造 (`NewSMTPNotifier`)**:
|
||||
- [x] 修改函数签名,添加 `ctx context.Context` 作为第一个参数。
|
||||
- [x] 在函数内部,为 `smtpNotifier` 创建其专属的 `selfCtx`:`selfCtx := logs.AddCompName(ctx, "SMTPNotifier")`。
|
||||
- [x] 将这个 `selfCtx` 赋值给 `smtpNotifier` 结构体的 `selfCtx` 成员。
|
||||
- **公共方法改造 (`Send`)**:
|
||||
- [x] 修改方法签名,添加 `ctx context.Context` 作为第一个参数。
|
||||
- [x] 在方法入口处,使用 `newCtx, logger := logs.Trace(ctx, s.selfCtx, "Send")` 获取新的 `context.Context` 和
|
||||
`logger` 实例。
|
||||
- [x] 将所有内部的错误日志(例如 `fmt.Errorf` 返回的错误)通过 `logger.Errorf` 记录。
|
||||
- **`internal/infra/notify/wechat.go` (`notify.WechatNotifier`)**
|
||||
- **结构体改造**:
|
||||
- [x] 新增 `selfCtx context.Context` 成员。
|
||||
- **构造函数改造 (`NewWechatNotifier`)**:
|
||||
- [x] 修改函数签名,添加 `ctx context.Context` 作为第一个参数。
|
||||
- [x] 在函数内部,为 `wechatNotifier` 创建其专属的 `selfCtx`:
|
||||
`selfCtx := logs.AddCompName(ctx, "WechatNotifier")`。
|
||||
- [x] 将这个 `selfCtx` 赋值给 `wechatNotifier` 结构体的 `selfCtx` 成员。
|
||||
- **公共方法改造 (`Send`)**:
|
||||
- [x] 修改方法签名,添加 `ctx context.Context` 作为第一个参数。
|
||||
- [x] 在方法入口处,使用 `newCtx, logger := logs.Trace(ctx, w.selfCtx, "Send")` 获取新的 `context.Context` 和
|
||||
`logger` 实例。
|
||||
- [x] 将所有内部的错误日志(例如 `fmt.Errorf` 返回的错误,以及 `getAccessToken` 中的错误)通过 `logger.Errorf`
|
||||
记录。
|
||||
- **内部辅助方法改造 (`getAccessToken`)**:
|
||||
- [x] 修改方法签名,添加 `ctx context.Context` 作为第一个参数。
|
||||
- [x] 在方法入口处,使用 `newCtx, logger := logs.Trace(ctx, w.selfCtx, "getAccessToken")` 获取新的
|
||||
`context.Context` 和 `logger` 实例。
|
||||
- [x] 将所有内部的错误日志通过 `logger.Errorf` 记录。
|
||||
|
||||
- **`internal/infra/transport/lora/chirp_stack.go` (`lora.ChirpStackTransport`)**
|
||||
- **结构体改造**:
|
||||
- [x] 移除 `ChirpStackTransport` 结构体中的 `logger *logs.Logger` 成员。
|
||||
- [x] 新增 `selfCtx context.Context` 成员。
|
||||
- **构造函数改造 (`NewChirpStackTransport`)**:
|
||||
- [x] 修改函数签名,移除 `logger *logs.Logger` 参数,改为接收 `ctx context.Context`。
|
||||
- [x] 在函数内部,为 `ChirpStackTransport` 创建其专属的 `selfCtx`:
|
||||
`selfCtx := logs.AddCompName(ctx, "ChirpStackTransport")`。
|
||||
- [x] 将这个 `selfCtx` 赋值给 `ChirpStackTransport` 结构体的 `selfCtx` 成员。
|
||||
- **公共方法改造 (`Send`)**:
|
||||
- [x] 修改方法签名,添加 `ctx context.Context` 作为第一个参数。
|
||||
- [x] 在方法入口处,使用 `newCtx, logger := logs.Trace(ctx, c.selfCtx, "Send")` 获取新的 `context.Context` 和
|
||||
`logger` 实例。
|
||||
- [x] 将所有对 `c.logger.Errorf` 和 `c.logger.Infof` 的调用替换为 `logger.Errorf` 和 `logger.Infof`。
|
||||
- [x] 在调用 `c.client.DeviceService.DeviceServiceEnqueue` 时,确保将 `newCtx` 传递给
|
||||
`params.WithContext(newCtx)`,以便 ChirpStack 客户端内部的 HTTP 请求也能携带上下文。
|
||||
- **`internal/infra/transport/lora/lora_mesh_uart_passthrough_transport.go` (`lora.LoRaMeshUartPassthroughTransport`)**
|
||||
- **结构体改造**:
|
||||
- [x] 移除 `LoRaMeshUartPassthroughTransport` 结构体中的 `logger *logs.Logger` 成员。
|
||||
- [x] 新增 `selfCtx context.Context` 成员。
|
||||
- **构造函数改造 (`NewLoRaMeshUartPassthroughTransport`)**:
|
||||
- [x] 修改函数签名,移除 `logger *logs.Logger` 参数,改为接收 `ctx context.Context`。
|
||||
- [x] 在函数内部,为 `LoRaMeshUartPassthroughTransport` 创建其专属的 `selfCtx`:
|
||||
`selfCtx := logs.AddCompName(ctx, "LoRaMeshUartPassthroughTransport")`。
|
||||
- [x] 将这个 `selfCtx` 赋值给 `LoRaMeshUartPassthroughTransport` 结构体的 `selfCtx` 成员。
|
||||
- **公共方法改造 (`Listen`, `Send`, `Stop`)**:
|
||||
- [x] 修改 `Listen` 方法签名,添加 `ctx context.Context` 作为第一个参数。
|
||||
- [x] 修改 `Send` 方法签名,添加 `ctx context.Context` 作为第一个参数。
|
||||
- [x] 修改 `Stop` 方法签名,添加 `ctx context.Context` 作为第一个参数。
|
||||
- [x] 在方法入口处,使用 `newCtx, logger := logs.Trace(ctx, t.selfCtx, "MethodName")` 获取新的
|
||||
`context.Context` 和 `logger` 实例。
|
||||
- [x] 将所有对 `t.logger.Info`, `t.logger.Errorf` 的调用替换为 `logger.Info`, `logger.Errorf`。
|
||||
- [x] 在 `Send` 方法中,确保 `t.sendChan <- req` 传递的 `req` 包含了 `newCtx`。
|
||||
- **内部辅助方法改造 (`workerLoop`, `runIdleState`, `runReceivingState`, `executeSend`, `handleFrame`,
|
||||
`handleUpstreamMessage`, `recordSensorData`)**:
|
||||
- [x] 修改方法签名,添加 `ctx context.Context` 作为第一个参数。
|
||||
- [x] 在每个方法入口处,使用 `newCtx, logger := logs.Trace(ctx, t.selfCtx, "MethodName")` 获取新的
|
||||
`context.Context` 和 `logger` 实例。
|
||||
- [x] 将所有对 `t.logger.Info`, `t.logger.Errorf`, `t.logger.Warnf`, `t.logger.Infof`, `t.logger.Debugf`
|
||||
的调用替换为 `logger.Info`, `logger.Errorf`, `logger.Warnf`, `logger.Infof`, `logger.Debugf`。
|
||||
- [x] 确保所有对 `t.port`, `t.areaControllerRepo`, `t.pendingCollectionRepo`, `t.deviceRepo`,
|
||||
`t.sensorDataRepo` 等依赖的调用都将 `newCtx` 作为第一个参数传递。
|
||||
- **`internal/infra/transport/lora/placeholder_transport.go` (`lora.PlaceholderTransport`)**
|
||||
- **结构体改造**:
|
||||
- [x] 移除 `PlaceholderTransport` 结构体中的 `logger *logs.Logger` 成员。
|
||||
- [x] 新增 `selfCtx context.Context` 成员。
|
||||
- **构造函数改造 (`NewPlaceholderTransport`)**:
|
||||
- [x] 修改函数签名,移除 `logger *logs.Logger` 参数,改为接收 `ctx context.Context`。
|
||||
- [x] 在函数内部,为 `PlaceholderTransport` 创建其专属的 `selfCtx`:
|
||||
`selfCtx := logs.AddCompName(ctx, "PlaceholderTransport")`。
|
||||
- [x] 将这个 `selfCtx` 赋值给 `PlaceholderTransport` 结构体的 `selfCtx` 成员。
|
||||
- [x] 使用 `newCtx, logger := logs.Trace(ctx, selfCtx, "NewPlaceholderTransport")` 获取 `logger` 实例,并替换
|
||||
`logger.Info` 调用。
|
||||
- **公共方法改造 (`Listen`, `Stop`)**:
|
||||
- [x] 修改方法签名,添加 `ctx context.Context` 作为第一个参数。
|
||||
- [x] 在方法入口处,使用 `newCtx, logger := logs.Trace(ctx, p.selfCtx, "MethodName")` 获取新的
|
||||
`context.Context` 和 `logger` 实例。
|
||||
- [x] 将所有对 `p.logger.Warnf` 的调用替换为 `logger.Warnf`。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user