- update ctx

master v1.0.5
李光春 2 years ago
parent 6de48c55c7
commit bb986d67a7

@ -1,3 +1,5 @@
package gotrace_id package gotrace_id
const Version = "1.0.4" const Version = "1.0.5"
const Nil = "%!s(<nil>)"

@ -8,22 +8,22 @@ import (
) )
// CustomTraceIdContext 自定义设置跟踪编号上下文 // CustomTraceIdContext 自定义设置跟踪编号上下文
func CustomTraceIdContext() context.Context { func CustomTraceIdContext(ctx context.Context) context.Context {
return context.WithValue(context.Background(), "trace_id", gostring.GetUuId()) return context.WithValue(ctx, "trace_id", gostring.GetUuId())
} }
// SetGinTraceIdContext 设置跟踪编号上下文 // SetGinTraceIdContext 设置跟踪编号上下文
func SetGinTraceIdContext(c *gin.Context) context.Context { func SetGinTraceIdContext(ctx context.Context, c *gin.Context) context.Context {
return context.WithValue(context.Background(), "trace_id", GetGinTraceId(c)) return context.WithValue(ctx, "trace_id", GetGinTraceId(c))
} }
// GetTraceIdContext 通过上下文获取跟踪编号 // GetTraceIdContext 通过上下文获取跟踪编号
func GetTraceIdContext(ctx context.Context) string { func GetTraceIdContext(ctx context.Context) string {
traceId := fmt.Sprintf("%s", ctx.Value("trace_id")) traceId := fmt.Sprintf("%s", ctx.Value("trace_id"))
if len(traceId) <= 0 { if traceId == Nil {
return "" return ""
} }
if traceId == "%!s(<nil>)" { if len(traceId) <= 0 {
return "" return ""
} }
return traceId return traceId

@ -6,7 +6,7 @@ import (
) )
func TestContext(t *testing.T) { func TestContext(t *testing.T) {
ctx1 := CustomTraceIdContext() ctx1 := CustomTraceIdContext(context.Background())
t.Log(ctx1) t.Log(ctx1)
t.Log(GetTraceIdContext(ctx1)) t.Log(GetTraceIdContext(ctx1))
ctx2 := context.Background() ctx2 := context.Background()

@ -22,10 +22,10 @@ func SetGinTraceId() gin.HandlerFunc {
// GetGinTraceId 通过gin中间件获取跟踪编号 // GetGinTraceId 通过gin中间件获取跟踪编号
func GetGinTraceId(c *gin.Context) string { func GetGinTraceId(c *gin.Context) string {
traceId := fmt.Sprintf("%s", c.MustGet("trace_id")) traceId := fmt.Sprintf("%s", c.MustGet("trace_id"))
if len(traceId) <= 0 { if traceId == Nil {
return "" return ""
} }
if traceId == "%!s(<nil>)" { if len(traceId) <= 0 {
return "" return ""
} }
return traceId return traceId

Loading…
Cancel
Save