- 调整 `slog`

master
dtapps 1 month ago
parent 43c1f1ff30
commit ab6de721a6

@ -13,5 +13,5 @@
#### 安装
```shell
go get -v -u go.dtapp.net/gotrace_id@v1.0.10
go get -v -u go.dtapp.net/gotrace_id@v1.0.11
```

@ -2,12 +2,6 @@ package gotrace_id
const Nil = "%!s(<nil>)"
type ctxKey string
const (
SlogFields ctxKey = "slog_fields"
)
const (
TraceIdKey = "trace_id"
TraceIdGinKey = "trace_id"

@ -5,68 +5,23 @@ import (
"fmt"
"github.com/gin-gonic/gin"
"go.dtapp.net/gostring"
"log/slog"
)
// CustomTraceIdContext 自定义设置跟踪编号上下文
func CustomTraceIdContext(ctx context.Context) context.Context {
if ctx == nil {
ctx = context.Background()
}
var traceId = gostring.GetUuId()
// slog
if v, ok := ctx.Value(SlogFields).([]slog.Attr); ok {
v = append(v, slog.String(TraceIdKey, traceId))
return context.WithValue(ctx, SlogFields, v)
}
var v []slog.Attr
v = append(v, slog.String(TraceIdKey, traceId))
return context.WithValue(context.WithValue(ctx, SlogFields, v), TraceIdKey, traceId)
return context.WithValue(ctx, TraceIdKey, traceId)
}
// SetCustomTraceId 自定义设置跟踪编号上下文
func SetCustomTraceId(ctx context.Context, traceId string) context.Context {
if ctx == nil {
ctx = context.Background()
}
// slog
if v, ok := ctx.Value(SlogFields).([]slog.Attr); ok {
v = append(v, slog.String(TraceIdKey, traceId))
return context.WithValue(ctx, SlogFields, v)
}
var v []slog.Attr
v = append(v, slog.String(TraceIdKey, traceId))
return context.WithValue(context.WithValue(ctx, SlogFields, v), TraceIdKey, traceId)
return context.WithValue(ctx, TraceIdKey, traceId)
}
// SetGinTraceIdContext 设置跟踪编号上下文
func SetGinTraceIdContext(ctx context.Context, c *gin.Context) context.Context {
if ctx == nil {
ctx = context.Background()
}
var traceId = GetGinTraceId(c)
// slog
if v, ok := ctx.Value(SlogFields).([]slog.Attr); ok {
v = append(v, slog.String(TraceIdKey, traceId))
return context.WithValue(ctx, SlogFields, v)
}
var v []slog.Attr
v = append(v, slog.String(TraceIdKey, traceId))
return context.WithValue(context.WithValue(ctx, SlogFields, v), TraceIdKey, traceId)
return context.WithValue(ctx, TraceIdKey, traceId)
}
// GetTraceIdContext 通过上下文获取跟踪编号

@ -12,4 +12,7 @@ func TestContext(t *testing.T) {
ctx2 := context.Background()
t.Log(ctx2)
t.Log(GetTraceIdContext(ctx2))
ctx3 := SetCustomTraceId(context.Background(), "23456")
t.Log(ctx3)
t.Log(GetTraceIdContext(ctx3))
}

@ -1,3 +1,3 @@
package gotrace_id
const Version = "1.0.10"
const Version = "1.0.11"

Loading…
Cancel
Save