From 8f533f5b04625371c5c70ab3b31c28b11b09acde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Tue, 23 Jul 2024 21:34:40 +0800 Subject: [PATCH] fix --- define/response.go | 30 +++++++++++++++++++++--------- middleware/access_log.go | 23 +++++++++++++---------- 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/define/response.go b/define/response.go index 3b4e84f..ac53487 100644 --- a/define/response.go +++ b/define/response.go @@ -22,15 +22,17 @@ var ( // // Date : 20:41 2022/6/25 type HttpHandleConfig struct { - RequestIDField string - TraceIDField string - ResponseCodeField string - ResponseMessageField string - HandleRequestCostField string - ResponseDataField string - ResponseTraceIDField string - StartRequestTimeField string - FinishRequestTimeField string + RecordRequestDataField string + RecordResponseDataField string + RequestIDField string + TraceIDField string + ResponseCodeField string + ResponseMessageField string + HandleRequestCostField string + ResponseDataField string + ResponseTraceIDField string + StartRequestTimeField string + FinishRequestTimeField string } // ConvertDefaultConfig 覆盖默认配置 @@ -94,5 +96,15 @@ func GetHttpHandleConfig() *HttpHandleConfig { consts.GinFinishRequestTimeField, wrapper.String(inputHttpHandleConfig.FinishRequestTimeField), ).Value(), + RecordRequestDataField: wrapper.TernaryOperator.String( + nil == inputHttpHandleConfig || inputHttpHandleConfig.RecordRequestDataField == "", + consts.GinRecordRequestDataField, + wrapper.String(inputHttpHandleConfig.RecordRequestDataField), + ).Value(), + RecordResponseDataField: wrapper.TernaryOperator.String( + nil == inputHttpHandleConfig || inputHttpHandleConfig.RecordResponseDataField == "", + consts.GinRecordResponseDataField, + wrapper.String(inputHttpHandleConfig.RecordResponseDataField), + ).Value(), } } diff --git a/middleware/access_log.go b/middleware/access_log.go index c30f118..d6a6c3a 100644 --- a/middleware/access_log.go +++ b/middleware/access_log.go @@ -8,9 +8,10 @@ package middleware import ( - "git.zhangdeman.cn/zhangdeman/wrapper" "strings" + "git.zhangdeman.cn/zhangdeman/wrapper" + "git.zhangdeman.cn/zhangdeman/gin/define" "github.com/gin-gonic/gin" @@ -41,7 +42,8 @@ func fillCfg(cfg *AccessConfig) { if nil == cfg.ExtraFieldList { cfg.ExtraFieldList = make([]string, 0) } - cfg.ExtraFieldList = append(cfg.ExtraFieldList, define.RecordRequestDataField, define.RecordResponseDataField) + handleConfig := define.GetHttpHandleConfig() + cfg.ExtraFieldList = append(cfg.ExtraFieldList, handleConfig.RecordRequestDataField, handleConfig.RecordResponseDataField) } // getLogRequestHeader 获取记录的请求header @@ -54,7 +56,7 @@ func getLogRequestHeader(ctx *gin.Context, cfg *AccessConfig) map[string][]strin headerTable := make(map[string][]string) if len(cfg.RequestHeaderList) == 0 { // 全部记录 - for headerKey, _ := range ctx.Request.Header { + for headerKey := range ctx.Request.Header { cfg.RequestHeaderList = append(cfg.RequestHeaderList, headerKey) } } @@ -74,7 +76,7 @@ func getLogResponseHeader(ctx *gin.Context, cfg *AccessConfig) map[string][]stri responseHeaderTable := make(map[string][]string) if len(cfg.ResponseHeaderList) == 0 { // 全部记录 - for headerKey, _ := range ctx.Writer.Header() { + for headerKey := range ctx.Writer.Header() { cfg.ResponseHeaderList = append(cfg.ResponseHeaderList, headerKey) } zap.Any("pkg_gin_response_header", ctx.Writer.Header()) @@ -92,6 +94,7 @@ func getLogResponseHeader(ctx *gin.Context, cfg *AccessConfig) map[string][]stri // Date : 10:55 2022/7/14 func LogRequest(cfg *AccessConfig) gin.HandlerFunc { fillCfg(cfg) + handleConfig := define.GetHttpHandleConfig() return func(ctx *gin.Context) { // 未传入配置或者未传入日志实例 if nil == cfg || nil == cfg.Logger || !cfg.IsRecordLog(ctx) { @@ -99,16 +102,16 @@ func LogRequest(cfg *AccessConfig) gin.HandlerFunc { return } ctx.Next() - startRequestTime := wrapper.OwnTime(ctx.GetTime(define.StartRequestTimeField)) + startRequestTime := wrapper.OwnTime(ctx.GetTime(handleConfig.StartRequestTimeField)) logDataList := []zap.Field{ // 开始请求时间 - zap.Any(define.StartRequestTimeField, startRequestTime.FormatUnixMilli()), + zap.Any(handleConfig.StartRequestTimeField, startRequestTime.FormatUnixMilli()), } // 结束时间 - finishRequestTime := wrapper.OwnTime(ctx.GetTime(define.FinishRequestTimeField)) + finishRequestTime := wrapper.OwnTime(ctx.GetTime(handleConfig.FinishRequestTimeField)) logDataList = append( logDataList, - zap.Any(define.FinishRequestTimeField, finishRequestTime.FormatUnixMilli()), // 请求完成时间 + zap.Any(handleConfig.FinishRequestTimeField, finishRequestTime.FormatUnixMilli()), // 请求完成时间 zap.Int64("pkg_gin_request_cost", finishRequestTime.UnixMilli()-startRequestTime.UnixMilli()), // 接口耗时 zap.Any("pkg_gin_request_header", getLogRequestHeader(ctx, cfg)), // 请求header zap.Any("pkg_gin_response_header", getLogResponseHeader(ctx, cfg)), // 响应header @@ -126,8 +129,8 @@ func LogRequest(cfg *AccessConfig) gin.HandlerFunc { // hook 不为nil, 自动触发 cfg.FinishHook( ctx, - []byte(ctx.GetString(define.RecordRequestDataField)), - ctx.GetStringMap(define.RecordResponseDataField), + []byte(ctx.GetString(handleConfig.RecordRequestDataField)), + ctx.GetStringMap(handleConfig.RecordResponseDataField), finishRequestTime.UnixMilli()-startRequestTime.UnixMilli(), )