From 9bbfa1b768c82400f0e32345c4840367e4bdf798 Mon Sep 17 00:00:00 2001
From: ensiouel <ensiouel@gmail.com>
Date: Fri, 2 Feb 2024 09:25:29 +0300
Subject: [PATCH] refactor

---
 pkg/log/zap/field.go | 32 ++++++++++++++++++++++++--------
 1 file changed, 24 insertions(+), 8 deletions(-)

diff --git a/pkg/log/zap/field.go b/pkg/log/zap/field.go
index 77ddf563..aece1e9e 100644
--- a/pkg/log/zap/field.go
+++ b/pkg/log/zap/field.go
@@ -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)
-- 
GitLab