From 0709f1db0aea410b18f33c6e2c39f444c096007c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Thu, 14 Jul 2022 21:24:56 +0800 Subject: [PATCH] =?UTF-8?q?request=E5=87=BD=E6=95=B0=E5=A2=9E=E5=8A=A0hook?= =?UTF-8?q?=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- middleware/access_log.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/middleware/access_log.go b/middleware/access_log.go index 1977414..44c3060 100644 --- a/middleware/access_log.go +++ b/middleware/access_log.go @@ -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 日志