request函数增加hook定义

This commit is contained in:
白茶清欢 2022-07-14 21:24:56 +08:00
parent 015db63169
commit 0709f1db0a
1 changed files with 10 additions and 7 deletions

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)
}
}
}
@ -104,7 +107,7 @@ type AccessConfig struct {
ResponseHeaderList []string // 要记录哪些响应header, 不传全部记录
IsRecordLog func(ctx *gin.Context) bool // 验证当前请求是否记录日志
ExtraFieldList []string // 记录的扩展字段列表,请将相关数据使用 ctx.Set 写入上下文中, 日志会自动记录
FinishHook func(ctx *gin.Context) // 请求处理完成之后, 触发的hook函数
FinishHook func(ctx *gin.Context, requestData []byte, responseData []byte, cost int64) // 请求处理完成之后, 触发的hook函数
}
// defaultIsRecordLog 默认仅记录 json api 日志