支持关联相关字段
This commit is contained in:
parent
73d6ae7460
commit
7ad6f6da41
@ -9,10 +9,11 @@ package wrapper
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"git.zhangdeman.cn/zhangdeman/consts"
|
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"git.zhangdeman.cn/zhangdeman/consts"
|
||||||
|
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
|
|
||||||
"go.uber.org/zap/zapcore"
|
"go.uber.org/zap/zapcore"
|
||||||
@ -54,7 +55,7 @@ func NewGormV2(loggerLevel string, consoleOutput bool, encoder zapcore.Encoder,
|
|||||||
// Author : go_developer@163.com<白茶清欢>
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
//
|
//
|
||||||
// Date : 3:36 PM 2021/12/24
|
// Date : 3:36 PM 2021/12/24
|
||||||
func NewGormLoggerWithInstance(dbClient *gorm.DB, instance *zap.Logger, node string, extraCtxFieldList []string) logger.Interface {
|
func NewGormLoggerWithInstance(outCtx context.Context, dbClient *gorm.DB, instance *zap.Logger, node string, extraCtxFieldList []string) logger.Interface {
|
||||||
nodeArr := strings.Split(node, "|")
|
nodeArr := strings.Split(node, "|")
|
||||||
i := &Gorm{
|
i := &Gorm{
|
||||||
dbClient: dbClient,
|
dbClient: dbClient,
|
||||||
@ -63,6 +64,7 @@ func NewGormLoggerWithInstance(dbClient *gorm.DB, instance *zap.Logger, node str
|
|||||||
extraCtxFieldList: extraCtxFieldList,
|
extraCtxFieldList: extraCtxFieldList,
|
||||||
flag: "",
|
flag: "",
|
||||||
node: node,
|
node: node,
|
||||||
|
outCtx: outCtx,
|
||||||
}
|
}
|
||||||
if len(nodeArr) >= 2 {
|
if len(nodeArr) >= 2 {
|
||||||
i.node = nodeArr[1]
|
i.node = nodeArr[1]
|
||||||
@ -83,6 +85,7 @@ type Gorm struct {
|
|||||||
extraCtxFieldList []string // 从请求上线问提取的字段
|
extraCtxFieldList []string // 从请求上线问提取的字段
|
||||||
flag string // 数据库标识
|
flag string // 数据库标识
|
||||||
node string // 数据库节点 master / slave
|
node string // 数据库节点 master / slave
|
||||||
|
outCtx context.Context
|
||||||
}
|
}
|
||||||
|
|
||||||
// LogMode ...
|
// LogMode ...
|
||||||
@ -164,14 +167,18 @@ func (g *Gorm) write(ctx context.Context, message string, level string, dataList
|
|||||||
if nil == dataList {
|
if nil == dataList {
|
||||||
dataList = make([]zap.Field, 0)
|
dataList = make([]zap.Field, 0)
|
||||||
}
|
}
|
||||||
if nil == ctx {
|
if nil == g.outCtx {
|
||||||
ctx = context.Background()
|
g.outCtx = context.Background()
|
||||||
}
|
}
|
||||||
for _, extraField := range g.extraCtxFieldList {
|
for _, extraField := range g.extraCtxFieldList {
|
||||||
if len(extraField) == 0 {
|
if len(extraField) == 0 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
dataList = append(dataList, zap.Any(extraField, ctx.Value(extraField)))
|
val := g.outCtx.Value(extraField)
|
||||||
|
if nil == val {
|
||||||
|
val = ""
|
||||||
|
}
|
||||||
|
dataList = append(dataList, zap.Any(extraField, val))
|
||||||
}
|
}
|
||||||
|
|
||||||
switch strings.ToUpper(level) {
|
switch strings.ToUpper(level) {
|
||||||
|
Loading…
Reference in New Issue
Block a user