diff --git a/api_gorm.go b/api_gorm.go index 649a86e..5a6f438 100644 --- a/api_gorm.go +++ b/api_gorm.go @@ -5,6 +5,8 @@ import ( "go.dtapp.net/dorm" "go.dtapp.net/gojson" "go.dtapp.net/gorequest" + "go.dtapp.net/gotrace_id" + "go.dtapp.net/gourl" "gorm.io/datatypes" "gorm.io/gorm" "time" @@ -46,7 +48,7 @@ func (c *ApiClient) gormRecord(ctx context.Context, postgresqlLog apiPostgresqlL } postgresqlLog.GoVersion = c.config.goVersion - postgresqlLog.TraceId = GetTraceIdContext(ctx) + postgresqlLog.TraceId = gotrace_id.GetTraceIdContext(ctx) return c.gormClient.Table(c.config.tableName).Create(&postgresqlLog).Error } @@ -64,8 +66,8 @@ func (c *ApiClient) GormMiddleware(ctx context.Context, request gorequest.Respon c.gormRecord(ctx, apiPostgresqlLog{ RequestTime: request.RequestTime, //【请求】时间 RequestUri: request.RequestUri, //【请求】链接 - RequestUrl: gorequest.UriParse(request.RequestUri).Url, //【请求】链接 - RequestApi: gorequest.UriParse(request.RequestUri).Path, //【请求】接口 + RequestUrl: gourl.UriParse(request.RequestUri).Url, //【请求】链接 + RequestApi: gourl.UriParse(request.RequestUri).Path, //【请求】接口 RequestMethod: request.RequestMethod, //【请求】方式 RequestParams: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestParams)), //【请求】参数 RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【请求】头部 @@ -83,8 +85,8 @@ func (c *ApiClient) GormMiddlewareXml(ctx context.Context, request gorequest.Res c.gormRecord(ctx, apiPostgresqlLog{ RequestTime: request.RequestTime, //【请求】时间 RequestUri: request.RequestUri, //【请求】链接 - RequestUrl: gorequest.UriParse(request.RequestUri).Url, //【请求】链接 - RequestApi: gorequest.UriParse(request.RequestUri).Path, //【请求】接口 + RequestUrl: gourl.UriParse(request.RequestUri).Url, //【请求】链接 + RequestApi: gourl.UriParse(request.RequestUri).Path, //【请求】接口 RequestMethod: request.RequestMethod, //【请求】方式 RequestParams: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestParams)), //【请求】参数 RequestHeader: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestHeader)), //【请求】头部 @@ -102,7 +104,7 @@ func (c *ApiClient) GormMiddlewareCustom(ctx context.Context, api string, reques c.gormRecord(ctx, apiPostgresqlLog{ RequestTime: request.RequestTime, //【请求】时间 RequestUri: request.RequestUri, //【请求】链接 - RequestUrl: gorequest.UriParse(request.RequestUri).Url, //【请求】链接 + RequestUrl: gourl.UriParse(request.RequestUri).Url, //【请求】链接 RequestApi: api, //【请求】接口 RequestMethod: request.RequestMethod, //【请求】方式 RequestParams: datatypes.JSON(gojson.JsonEncodeNoError(request.RequestParams)), //【请求】参数 diff --git a/api_middleware.go b/api_middleware.go deleted file mode 100644 index c39e7e4..0000000 --- a/api_middleware.go +++ /dev/null @@ -1,23 +0,0 @@ -package golog - -import ( - "context" - "fmt" - "github.com/gin-gonic/gin" - "go.dtapp.net/gostring" -) - -// CustomTraceIdContext 自定义设置跟踪编号上下文 -func CustomTraceIdContext() context.Context { - return context.WithValue(context.Background(), "trace_id", gostring.GetUuId()) -} - -// SetTraceIdContext 设置跟踪编号上下文 -func SetTraceIdContext(c *gin.Context) context.Context { - return context.WithValue(context.Background(), "trace_id", GetTraceId(c)) -} - -// GetTraceIdContext 通过上下文获取跟踪编号 -func GetTraceIdContext(ctx context.Context) string { - return fmt.Sprintf("%s", ctx.Value("trace_id")) -} diff --git a/api_middleware_test.go b/api_middleware_test.go deleted file mode 100644 index 89c61e4..0000000 --- a/api_middleware_test.go +++ /dev/null @@ -1,16 +0,0 @@ -package golog - -import ( - "context" - "testing" -) - -func TestContext(t *testing.T) { - - ctx := context.Background() - t.Log(ctx) - - ctx = context.WithValue(ctx, "k1", "测试") - - t.Log() -} diff --git a/api_mongo.go b/api_mongo.go index 0688e6a..57c5504 100644 --- a/api_mongo.go +++ b/api_mongo.go @@ -5,6 +5,8 @@ import ( "go.dtapp.net/dorm" "go.dtapp.net/gorequest" "go.dtapp.net/gotime" + "go.dtapp.net/gotrace_id" + "go.dtapp.net/gourl" "go.mongodb.org/mongo-driver/bson/primitive" ) @@ -39,7 +41,7 @@ func (c *ApiClient) mongoRecord(ctx context.Context, mongoLog apiMongoLog) error } mongoLog.GoVersion = c.config.goVersion - mongoLog.TraceId = GetTraceIdContext(ctx) + mongoLog.TraceId = gotrace_id.GetTraceIdContext(ctx) mongoLog.LogId = primitive.NewObjectID() @@ -58,8 +60,8 @@ func (c *ApiClient) MongoMiddleware(ctx context.Context, request gorequest.Respo c.mongoRecord(ctx, apiMongoLog{ RequestTime: gotime.SetCurrent(request.RequestTime).Timestamp(), //【请求】时间 RequestUri: request.RequestUri, //【请求】链接 - RequestUrl: gorequest.UriParse(request.RequestUri).Url, //【请求】链接 - RequestApi: gorequest.UriParse(request.RequestUri).Path, //【请求】接口 + RequestUrl: gourl.UriParse(request.RequestUri).Url, //【请求】链接 + RequestApi: gourl.UriParse(request.RequestUri).Path, //【请求】接口 RequestMethod: request.RequestMethod, //【请求】方式 RequestParams: request.RequestParams, //【请求】参数 RequestHeader: request.RequestHeader, //【请求】头部 @@ -77,8 +79,8 @@ func (c *ApiClient) MongoMiddlewareXml(ctx context.Context, request gorequest.Re c.mongoRecord(ctx, apiMongoLog{ RequestTime: gotime.SetCurrent(request.RequestTime).Timestamp(), //【请求】时间 RequestUri: request.RequestUri, //【请求】链接 - RequestUrl: gorequest.UriParse(request.RequestUri).Url, //【请求】链接 - RequestApi: gorequest.UriParse(request.RequestUri).Path, //【请求】接口 + RequestUrl: gourl.UriParse(request.RequestUri).Url, //【请求】链接 + RequestApi: gourl.UriParse(request.RequestUri).Path, //【请求】接口 RequestMethod: request.RequestMethod, //【请求】方式 RequestParams: request.RequestParams, //【请求】参数 RequestHeader: request.RequestHeader, //【请求】头部 @@ -96,7 +98,7 @@ func (c *ApiClient) MongoMiddlewareCustom(ctx context.Context, api string, reque c.mongoRecord(ctx, apiMongoLog{ RequestTime: gotime.SetCurrent(request.RequestTime).Timestamp(), //【请求】时间 RequestUri: request.RequestUri, //【请求】链接 - RequestUrl: gorequest.UriParse(request.RequestUri).Url, //【请求】链接 + RequestUrl: gourl.UriParse(request.RequestUri).Url, //【请求】链接 RequestApi: api, //【请求】接口 RequestMethod: request.RequestMethod, //【请求】方式 RequestParams: request.RequestParams, //【请求】参数 diff --git a/gin_gorm.go b/gin_gorm.go index 5cd577b..ed13b48 100644 --- a/gin_gorm.go +++ b/gin_gorm.go @@ -5,9 +5,10 @@ import ( "encoding/json" "github.com/gin-gonic/gin" "go.dtapp.net/gojson" - "go.dtapp.net/gorequest" "go.dtapp.net/gotime" + "go.dtapp.net/gotrace_id" "go.dtapp.net/goxml" + "golang/library/gourl" "gorm.io/datatypes" "gorm.io/gorm" "io/ioutil" @@ -132,11 +133,11 @@ func (c *GinClient) GormMiddleware() gin.HandlerFunc { } if len(jsonBody) > 0 { c.gormRecord(ginPostgresqlLog{ - TraceId: GetTraceId(ginCtx), //【系统】链编号 + TraceId: gotrace_id.GetTraceId(ginCtx), //【系统】链编号 RequestTime: requestTime, //【请求】时间 RequestUri: host + ginCtx.Request.RequestURI, //【请求】请求链接 RequestUrl: ginCtx.Request.RequestURI, //【请求】请求链接 - RequestApi: gorequest.UriFilterExcludeQueryString(ginCtx.Request.RequestURI), //【请求】请求接口 + RequestApi: gourl.UriFilterExcludeQueryString(ginCtx.Request.RequestURI), //【请求】请求接口 RequestMethod: ginCtx.Request.Method, //【请求】请求方式 RequestProto: ginCtx.Request.Proto, //【请求】请求协议 RequestUa: ginCtx.Request.UserAgent(), //【请求】请求UA @@ -157,11 +158,11 @@ func (c *GinClient) GormMiddleware() gin.HandlerFunc { }) } else { c.gormRecord(ginPostgresqlLog{ - TraceId: GetTraceId(ginCtx), //【系统】链编号 + TraceId: gotrace_id.GetTraceId(ginCtx), //【系统】链编号 RequestTime: requestTime, //【请求】时间 RequestUri: host + ginCtx.Request.RequestURI, //【请求】请求链接 RequestUrl: ginCtx.Request.RequestURI, //【请求】请求链接 - RequestApi: gorequest.UriFilterExcludeQueryString(ginCtx.Request.RequestURI), //【请求】请求接口 + RequestApi: gourl.UriFilterExcludeQueryString(ginCtx.Request.RequestURI), //【请求】请求接口 RequestMethod: ginCtx.Request.Method, //【请求】请求方式 RequestProto: ginCtx.Request.Proto, //【请求】请求协议 RequestUa: ginCtx.Request.UserAgent(), //【请求】请求UA diff --git a/gin_middleware.go b/gin_middleware.go deleted file mode 100644 index 384c571..0000000 --- a/gin_middleware.go +++ /dev/null @@ -1,25 +0,0 @@ -package golog - -import ( - "fmt" - "github.com/gin-gonic/gin" - "go.dtapp.net/gostring" -) - -// SetTraceId 设置跟踪编号 https://www.jianshu.com/p/2a1a74ad3c3a -func SetTraceId() gin.HandlerFunc { - return func(c *gin.Context) { - requestId := c.Request.Header.Get("X-Request-Id") - if requestId == "" { - requestId = gostring.GetUuId() - } - c.Set("trace_id", requestId) - c.Writer.Header().Set("X-Request-Id", requestId) - c.Next() - } -} - -// GetTraceId 通过gin中间件获取跟踪编号 -func GetTraceId(c *gin.Context) string { - return fmt.Sprintf("%s", c.MustGet("trace_id")) -} diff --git a/gin_middleware_test.go b/gin_middleware_test.go deleted file mode 100644 index c6096c5..0000000 --- a/gin_middleware_test.go +++ /dev/null @@ -1 +0,0 @@ -package golog diff --git a/gin_mongo.go b/gin_mongo.go index dee40f4..1fbb83b 100644 --- a/gin_mongo.go +++ b/gin_mongo.go @@ -5,8 +5,9 @@ import ( "encoding/json" "github.com/gin-gonic/gin" "go.dtapp.net/dorm" - "go.dtapp.net/gorequest" "go.dtapp.net/gotime" + "go.dtapp.net/gotrace_id" + "go.dtapp.net/gourl" "go.dtapp.net/goxml" "go.mongodb.org/mongo-driver/bson/primitive" "io/ioutil" @@ -134,53 +135,53 @@ func (c *GinClient) MongoMiddleware() gin.HandlerFunc { } if len(jsonBody) > 0 { c.mongoRecord(ginMongoLog{ - TraceId: GetTraceId(ginCtx), //【系统】链编号 - RequestTime: gotime.SetCurrent(requestTime).Timestamp(), //【请求】时间 - RequestUri: host + ginCtx.Request.RequestURI, //【请求】请求链接 - RequestUrl: ginCtx.Request.RequestURI, //【请求】请求链接 - RequestApi: gorequest.UriFilterExcludeQueryString(ginCtx.Request.RequestURI), //【请求】请求接口 - RequestMethod: ginCtx.Request.Method, //【请求】请求方式 - RequestProto: ginCtx.Request.Proto, //【请求】请求协议 - RequestUa: ginCtx.Request.UserAgent(), //【请求】请求UA - RequestReferer: ginCtx.Request.Referer(), //【请求】请求referer - RequestBody: jsonBody, //【请求】请求主体 - RequestUrlQuery: ginCtx.Request.URL.Query(), //【请求】请求URL参数 - RequestIp: ginCtx.ClientIP(), //【请求】请求客户端Ip - RequestIpCountry: requestClientIpCountry, //【请求】请求客户端城市 - RequestIpRegion: requestClientIpRegion, //【请求】请求客户端区域 - RequestIpProvince: requestClientIpProvince, //【请求】请求客户端省份 - RequestIpCity: requestClientIpCity, //【请求】请求客户端城市 - RequestIpIsp: requestClientIpIsp, //【请求】请求客户端运营商 - RequestHeader: ginCtx.Request.Header, //【请求】请求头 - ResponseTime: gotime.SetCurrent(gotime.Current().Time).Timestamp(), //【返回】时间 - ResponseCode: responseCode, //【返回】状态码 - ResponseData: c.jsonUnmarshal(responseBody), //【返回】数据 - CostTime: endTime - startTime, //【系统】花费时间 + TraceId: gotrace_id.GetTraceId(ginCtx), //【系统】链编号 + RequestTime: gotime.SetCurrent(requestTime).Timestamp(), //【请求】时间 + RequestUri: host + ginCtx.Request.RequestURI, //【请求】请求链接 + RequestUrl: ginCtx.Request.RequestURI, //【请求】请求链接 + RequestApi: gourl.UriFilterExcludeQueryString(ginCtx.Request.RequestURI), //【请求】请求接口 + RequestMethod: ginCtx.Request.Method, //【请求】请求方式 + RequestProto: ginCtx.Request.Proto, //【请求】请求协议 + RequestUa: ginCtx.Request.UserAgent(), //【请求】请求UA + RequestReferer: ginCtx.Request.Referer(), //【请求】请求referer + RequestBody: jsonBody, //【请求】请求主体 + RequestUrlQuery: ginCtx.Request.URL.Query(), //【请求】请求URL参数 + RequestIp: ginCtx.ClientIP(), //【请求】请求客户端Ip + RequestIpCountry: requestClientIpCountry, //【请求】请求客户端城市 + RequestIpRegion: requestClientIpRegion, //【请求】请求客户端区域 + RequestIpProvince: requestClientIpProvince, //【请求】请求客户端省份 + RequestIpCity: requestClientIpCity, //【请求】请求客户端城市 + RequestIpIsp: requestClientIpIsp, //【请求】请求客户端运营商 + RequestHeader: ginCtx.Request.Header, //【请求】请求头 + ResponseTime: gotime.SetCurrent(gotime.Current().Time).Timestamp(), //【返回】时间 + ResponseCode: responseCode, //【返回】状态码 + ResponseData: c.jsonUnmarshal(responseBody), //【返回】数据 + CostTime: endTime - startTime, //【系统】花费时间 }) } else { c.mongoRecord(ginMongoLog{ - TraceId: GetTraceId(ginCtx), //【系统】链编号 - RequestTime: gotime.SetCurrent(requestTime).Timestamp(), //【请求】时间 - RequestUri: host + ginCtx.Request.RequestURI, //【请求】请求链接 - RequestUrl: ginCtx.Request.RequestURI, //【请求】请求链接 - RequestApi: gorequest.UriFilterExcludeQueryString(ginCtx.Request.RequestURI), //【请求】请求接口 - RequestMethod: ginCtx.Request.Method, //【请求】请求方式 - RequestProto: ginCtx.Request.Proto, //【请求】请求协议 - RequestUa: ginCtx.Request.UserAgent(), //【请求】请求UA - RequestReferer: ginCtx.Request.Referer(), //【请求】请求referer - RequestBody: xmlBody, //【请求】请求主体 - RequestUrlQuery: ginCtx.Request.URL.Query(), //【请求】请求URL参数 - RequestIp: ginCtx.ClientIP(), //【请求】请求客户端Ip - RequestIpCountry: requestClientIpCountry, //【请求】请求客户端城市 - RequestIpRegion: requestClientIpRegion, //【请求】请求客户端区域 - RequestIpProvince: requestClientIpProvince, //【请求】请求客户端省份 - RequestIpCity: requestClientIpCity, //【请求】请求客户端城市 - RequestIpIsp: requestClientIpIsp, //【请求】请求客户端运营商 - RequestHeader: ginCtx.Request.Header, //【请求】请求头 - ResponseTime: gotime.SetCurrent(gotime.Current().Time).Timestamp(), //【返回】时间 - ResponseCode: responseCode, //【返回】状态码 - ResponseData: c.jsonUnmarshal(responseBody), //【返回】数据 - CostTime: endTime - startTime, //【系统】花费时间 + TraceId: gotrace_id.GetTraceId(ginCtx), //【系统】链编号 + RequestTime: gotime.SetCurrent(requestTime).Timestamp(), //【请求】时间 + RequestUri: host + ginCtx.Request.RequestURI, //【请求】请求链接 + RequestUrl: ginCtx.Request.RequestURI, //【请求】请求链接 + RequestApi: gourl.UriFilterExcludeQueryString(ginCtx.Request.RequestURI), //【请求】请求接口 + RequestMethod: ginCtx.Request.Method, //【请求】请求方式 + RequestProto: ginCtx.Request.Proto, //【请求】请求协议 + RequestUa: ginCtx.Request.UserAgent(), //【请求】请求UA + RequestReferer: ginCtx.Request.Referer(), //【请求】请求referer + RequestBody: xmlBody, //【请求】请求主体 + RequestUrlQuery: ginCtx.Request.URL.Query(), //【请求】请求URL参数 + RequestIp: ginCtx.ClientIP(), //【请求】请求客户端Ip + RequestIpCountry: requestClientIpCountry, //【请求】请求客户端城市 + RequestIpRegion: requestClientIpRegion, //【请求】请求客户端区域 + RequestIpProvince: requestClientIpProvince, //【请求】请求客户端省份 + RequestIpCity: requestClientIpCity, //【请求】请求客户端城市 + RequestIpIsp: requestClientIpIsp, //【请求】请求客户端运营商 + RequestHeader: ginCtx.Request.Header, //【请求】请求头 + ResponseTime: gotime.SetCurrent(gotime.Current().Time).Timestamp(), //【返回】时间 + ResponseCode: responseCode, //【返回】状态码 + ResponseData: c.jsonUnmarshal(responseBody), //【返回】数据 + CostTime: endTime - startTime, //【系统】花费时间 }) } } diff --git a/golog.go b/log.go similarity index 100% rename from golog.go rename to log.go diff --git a/golog_test.go b/log_test.go similarity index 100% rename from golog_test.go rename to log_test.go