request函数增加hook定义

This commit is contained in:
白茶清欢 2022-07-14 21:24:56 +08:00
parent 015db63169
commit 0709f1db0a

View File

@ -88,7 +88,10 @@ func Access(cfg *AccessConfig) gin.HandlerFunc {
cfg.Logger.Info("请求日志记录", logDataList...)
if nil != cfg.FinishHook {
// hook 不为nil, 自动触发
cfg.FinishHook(ctx)
cfg.FinishHook(ctx,
[]byte(ctx.GetString(define.RecordRequestDataField)),
[]byte(ctx.GetString(define.RecordResponseDataField)),
finishRequestTime-startRequestTime)
}
}
}
@ -99,12 +102,12 @@ func Access(cfg *AccessConfig) gin.HandlerFunc {
//
// Date : 11:26 2022/7/14
type AccessConfig struct {
Logger *zap.Logger // 日志实例
RequestHeaderList []string // 要记录哪些header , 不传全部记录
ResponseHeaderList []string // 要记录哪些响应header, 不传全部记录
IsRecordLog func(ctx *gin.Context) bool // 验证当前请求是否记录日志
ExtraFieldList []string // 记录的扩展字段列表,请将相关数据使用 ctx.Set 写入上下文中, 日志会自动记录
FinishHook func(ctx *gin.Context) // 请求处理完成之后, 触发的hook函数
Logger *zap.Logger // 日志实例
RequestHeaderList []string // 要记录哪些header , 不传全部记录
ResponseHeaderList []string // 要记录哪些响应header, 不传全部记录
IsRecordLog func(ctx *gin.Context) bool // 验证当前请求是否记录日志
ExtraFieldList []string // 记录的扩展字段列表,请将相关数据使用 ctx.Set 写入上下文中, 日志会自动记录
FinishHook func(ctx *gin.Context, requestData []byte, responseData []byte, cost int64) // 请求处理完成之后, 触发的hook函数
}
// defaultIsRecordLog 默认仅记录 json api 日志