3.2 KiB
3.2 KiB
internal/app/webhook/chirp_stack.go(webhook.ChirpStackListener)- 结构体改造:
- 移除
ChirpStackListener结构体中的logger *logs.Logger成员。 - 新增
selfCtx context.Context成员。
- 移除
- 构造函数改造 (
NewChirpStackListener):- 修改函数签名,移除
logger *logs.Logger参数,改为接收ctx context.Context。 - 在函数内部,为
ChirpStackListener创建其专属的selfCtx:selfCtx := logs.AddCompName(ctx, "ChirpStackListener")。 - 将这个
selfCtx赋值给ChirpStackListener结构体的selfCtx成员。
- 修改函数签名,移除
- 公共方法改造 (
Handler):Handler方法返回http.HandlerFunc。在返回的http.HandlerFunc内部,获取r.Context()作为upstreamCtx。- 在
go c.handler(b, event)调用之前,将upstreamCtx传递给c.handler方法,即go c.handler(upstreamCtx, b, event)。 - 将所有对
c.logger.Errorf的调用替换为logger.Errorf(在handler方法中处理)。
- 内部辅助方法改造 (
handler,handleUpEvent,handleStatusEvent,handleAckEvent,handleLogEvent,handleJoinEvent,handleTxAckEvent,handleLocationEvent,handleIntegrationEvent,recordSensorData):- 修改方法签名,添加
ctx context.Context作为第一个参数。 - 在每个方法入口处,使用
newCtx, logger := logs.Trace(ctx, c.selfCtx, "MethodName")获取新的context.Context和logger实例。 - 将所有对
c.logger.Errorf,c.logger.Infof,c.logger.Warnf的调用替换为logger.Errorf,logger.Infof,logger.Warnf。 - 确保所有对
c.sensorDataRepo,c.deviceRepo,c.areaControllerRepo,c.deviceCommandLogRepo,c.pendingCollectionRepo等依赖的调用都将newCtx作为第一个参数传递。
- 修改方法签名,添加
- 结构体改造:
internal/app/webhook/placeholder_listener.go(webhook.PlaceholderListener)- 结构体改造:
- 移除
PlaceholderListener结构体中的logger *logs.Logger成员。 - 新增
selfCtx context.Context成员。
- 移除
- 构造函数改造 (
NewPlaceholderListener):- 修改函数签名,移除
logger *logs.Logger参数,改为接收ctx context.Context。 - 在函数内部,为
PlaceholderListener创建其专属的selfCtx:selfCtx := logs.AddCompName(ctx, "PlaceholderListener")。 - 将这个
selfCtx赋值给PlaceholderListener结构体的selfCtx成员。 - 使用
newCtx, logger := logs.Trace(ctx, selfCtx, "NewPlaceholderListener")获取logger实例,并替换logger.Info调用。
- 修改函数签名,移除
- 公共方法改造 (
Handler):- 在
Handler方法返回的http.HandlerFunc内部,获取r.Context()作为upstreamCtx。 - 使用
newCtx, logger := logs.Trace(upstreamCtx, p.selfCtx, "Handler")获取logger实例。 - 将所有对
p.logger.Warn的调用替换为logger.Warn。
- 在
- 结构体改造: