12345678910111213141516171819202122232425262728 |
- package logger
- import "context"
- func With(ctx context.Context, key string, value any) context.Context {
- ctxAttrMu.Lock()
- defer ctxAttrMu.Unlock()
- if ctx.Value(CtxAttrKey{}) == nil {
- ctx = context.WithValue(ctx, CtxAttrKey{}, make([]any, 0))
- }
- kv, ok := ctx.Value(CtxAttrKey{}).([]any)
- if !ok {
- return ctx
- }
- return context.WithValue(ctx, CtxAttrKey{}, append(kv, key, value))
- }
- func AttrFromCtx(ctx context.Context) []any {
- ctxAttrMu.RLock()
- defer ctxAttrMu.RUnlock()
- kv, _ := ctx.Value(CtxAttrKey{}).([]any)
- return kv
- }
|