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

refactor

parent 930bb7a5
No related branches found
No related tags found
No related merge requests found
......@@ -8,7 +8,10 @@ import (
"go.uber.org/zap/zapcore"
)
const unknownCaller = "unknown"
const (
unknownObject = "unknown"
unknownCaller = "unknown"
)
func Category(category string) zapcore.Field {
return zap.String("category", category)
......@@ -22,26 +25,39 @@ func Event(event string) zapcore.Field {
return zap.String("event", event)
}
// Object добавляет передаваемый аргумент в качестве идентификатор объекта в формате GlobalID.
// Поддерживает один из типов: string, fmt.Stringer. Если передан аргумент другого типа, в качестве вызывающего
// будет установлен "unknown".
func Object(v any) zapcore.Field {
switch object := v.(type) {
var object string
switch value := v.(type) {
case string:
return zap.String("object", object)
object = value
case fmt.Stringer:
return zap.String("object", object.String())
object = value.String()
default:
return zap.Any("object", object)
object = unknownObject
}
return zap.String("value", object)
}
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)
}
func CallerFromContext(ctx context.Context) zapcore.Field {
caller, ok := ctx.Value(callerKey{}).(string)
if !ok {
var caller string
switch value := ctx.Value(callerKey{}).(type) {
case string:
caller = value
case fmt.Stringer:
caller = value.String()
default:
caller = unknownCaller
}
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