Files
kami_scripts/order/internal/utils/logger_adapter.go
danial e245ab8d47 feat(order): 优化订单处理逻辑并添加新功能
- 更新 .gitignore 文件,添加日志和IDE相关目录
- 修改 config.yaml,更新提交URL和商户配置- 在 interfaces.go 中添加新方法并修改现有方法
- 优化 logger_adapter.go 中的日志记录功能
- 调整 main.go 中的定时任务间隔
- 在 order.go 中实现新的 FindRandomFailedOrders 方法
- 更新 order_service.go,添加 CSV 文件处理逻辑
- 新增 road.go 文件,实现 FindRoadByRoadUid 方法
- 修改 submit_order.go,更新订单提交逻辑
2025-06-09 23:42:06 +08:00

48 lines
1.1 KiB
Go

package utils
import (
"order/internal/interfaces"
"go.uber.org/zap"
)
// ZapLoggerAdapter zap日志适配器
type ZapLoggerAdapter struct {
logger *zap.Logger
}
// NewZapLoggerAdapter 创建zap日志适配器
func NewZapLoggerAdapter(logger *zap.Logger) interfaces.Logger {
return &ZapLoggerAdapter{logger: logger}
}
// Info 实现 Logger 接口
func (l *ZapLoggerAdapter) Info(msg string, fields ...any) {
l.logger.Info(msg, convertFields(fields)...)
}
// Error 实现 Logger 接口
func (l *ZapLoggerAdapter) Error(msg string, fields ...any) {
l.logger.Error(msg, convertFields(fields)...)
}
// Fatal 实现 Logger 接口
func (l *ZapLoggerAdapter) Fatal(msg string, fields ...interface{}) {
l.logger.Fatal(msg, convertFields(fields)...)
}
// convertFields 转换字段
func convertFields(fields []any) []zap.Field {
zapFields := make([]zap.Field, 0, len(fields)/2)
for i := 0; i < len(fields); i += 2 {
if i+1 < len(fields) {
key, ok := fields[i].(string)
if !ok {
continue
}
zapFields = append(zapFields, zap.Any(key, fields[i+1]))
}
}
return zapFields
}