- update
continuous-integration/drone/push Build is failing Details

master
李光春 2 years ago
parent 73a2861132
commit 81d369d2aa

@ -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)), //【请求】参数

@ -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"))
}

@ -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()
}

@ -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, //【请求】参数

@ -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

@ -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"))
}

@ -1 +0,0 @@
package golog

@ -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, //【系统】花费时间
})
}
}

Loading…
Cancel
Save