Skip to content
Snippets Groups Projects
Commit c475b6d6 authored by ensiouel's avatar ensiouel
Browse files

Merge branch 'feature/PRXS-951-1964-ZapCustomFields' into feature/PRXS-951-1961-ZapIntergration

parents 2ce33396 9bbfa1b7
No related branches found
No related tags found
No related merge requests found
...@@ -8,7 +8,10 @@ import ( ...@@ -8,7 +8,10 @@ import (
"go.uber.org/zap/zapcore" "go.uber.org/zap/zapcore"
) )
const unknownCaller = "unknown" const (
unknownObject = "unknown"
unknownCaller = "unknown"
)
func Category(category string) zapcore.Field { func Category(category string) zapcore.Field {
return zap.String("category", category) return zap.String("category", category)
...@@ -22,26 +25,39 @@ func Event(event string) zapcore.Field { ...@@ -22,26 +25,39 @@ func Event(event string) zapcore.Field {
return zap.String("event", event) return zap.String("event", event)
} }
// Object добавляет передаваемый аргумент в качестве идентификатор объекта в формате GlobalID.
// Поддерживает один из типов: string, fmt.Stringer. Если передан аргумент другого типа, в качестве вызывающего
// будет установлен "unknown".
func Object(v any) zapcore.Field { func Object(v any) zapcore.Field {
switch object := v.(type) { var object string
switch value := v.(type) {
case string: case string:
return zap.String("object", object) object = value
case fmt.Stringer: case fmt.Stringer:
return zap.String("object", object.String()) object = value.String()
default: default:
return zap.Any("object", object) object = unknownObject
} }
return zap.String("value", object)
} }
type callerKey struct{} type callerKey struct{}
func ContextWithCaller(parent context.Context, caller string) context.Context { // ContextWithCaller добавляет передаваемый аргумент в качестве "вызывающего" в формате GlobalID.
// Поддерживает один из типов: string, fmt.Stringer. Если передан аргумент другого типа, в качестве вызывающего
// будет установлен "unknown".
func ContextWithCaller(parent context.Context, caller any) context.Context {
return context.WithValue(parent, callerKey{}, caller) return context.WithValue(parent, callerKey{}, caller)
} }
func CallerFromContext(ctx context.Context) zapcore.Field { func CallerFromContext(ctx context.Context) zapcore.Field {
caller, ok := ctx.Value(callerKey{}).(string) var caller string
if !ok { switch value := ctx.Value(callerKey{}).(type) {
case string:
caller = value
case fmt.Stringer:
caller = value.String()
default:
caller = unknownCaller caller = unknownCaller
} }
return zap.String("caller", caller) return zap.String("caller", caller)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment