diff --git a/pkg/log/zap/field.go b/pkg/log/zap/field.go
index 77ddf563646e6e91cf48966a24a632fe7a89475a..aece1e9e79e92c92e246af7a0776e904ab92fdf5 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)