diff --git a/pkg/collections/middleware/logging_middleware.go b/pkg/collections/middleware/logging_middleware.go
index fb12be9fa3a0b7e05603cc418b5ec7505048a7f9..59d77c47bb911957d40a5b056656cfb771a64d95 100644
--- a/pkg/collections/middleware/logging_middleware.go
+++ b/pkg/collections/middleware/logging_middleware.go
@@ -25,8 +25,12 @@ func LoggingMiddleware(logger *zap.Logger) Middleware {
 }
 
 func (m *loggingMiddleware) Create(ctx context.Context, collection *collections.Collection) (created *collections.Collection, err error) {
+	var spaceID string
+	if collection != nil {
+		spaceID = collection.SpaceID
+	}
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceID),
 		logzap.Event(collections.EventCollectionCreate),
 	)
 
@@ -42,7 +46,7 @@ func (m *loggingMiddleware) Create(ctx context.Context, collection *collections.
 
 func (m *loggingMiddleware) Delete(ctx context.Context, spaceId string, envId string, collectionId string) (err error) {
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceId),
 		logzap.Event(collections.EventCollectionDelete),
 		logzap.Object(id.NewCollectionId(spaceId, envId, collectionId)),
 	)
@@ -59,7 +63,7 @@ func (m *loggingMiddleware) Delete(ctx context.Context, spaceId string, envId st
 
 func (m *loggingMiddleware) Get(ctx context.Context, spaceId string, envId string, collectionId string, options ...*collections.GetOptions) (collection *collections.Collection, err error) {
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceId),
 	)
 
 	collection, err = m.next.Get(ctx, spaceId, envId, collectionId, options...)
@@ -73,7 +77,7 @@ func (m *loggingMiddleware) Get(ctx context.Context, spaceId string, envId strin
 
 func (m *loggingMiddleware) List(ctx context.Context, spaceId string, envId string, filter *collections.Filter) (collections []*collections.Collection, err error) {
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceId),
 	)
 
 	collections, err = m.next.List(ctx, spaceId, envId, filter)
@@ -87,7 +91,7 @@ func (m *loggingMiddleware) List(ctx context.Context, spaceId string, envId stri
 
 func (m *loggingMiddleware) SetSchema(ctx context.Context, spaceId string, envId string, collectionId string, schema *schema.Schema) (err error) {
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceId),
 		logzap.Event(collections.EventCollectionSetSchema),
 		logzap.Object(id.NewCollectionId(spaceId, envId, collectionId)),
 	)
@@ -104,7 +108,7 @@ func (m *loggingMiddleware) SetSchema(ctx context.Context, spaceId string, envId
 
 func (m *loggingMiddleware) SetState(ctx context.Context, spaceId string, envId string, collectionId string, state *collections.StateInfo) (err error) {
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceId),
 	)
 
 	err = m.next.SetState(ctx, spaceId, envId, collectionId, state)
@@ -118,8 +122,12 @@ func (m *loggingMiddleware) SetState(ctx context.Context, spaceId string, envId
 }
 
 func (m *loggingMiddleware) Update(ctx context.Context, coll *collections.Collection) (err error) {
+	var spaceID string
+	if coll != nil {
+		spaceID = coll.SpaceID
+	}
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceID),
 		logzap.Event(collections.EventCollectionUpdate),
 		logzap.Object(coll),
 	)
diff --git a/pkg/items/middleware/logging_middleware.go b/pkg/items/middleware/logging_middleware.go
index e2829a4261b42dbbc8ce7a52bcdcf0d3dd21ff05..caf1b8333a9286cf4226a9ab253a2fb14987a789 100644
--- a/pkg/items/middleware/logging_middleware.go
+++ b/pkg/items/middleware/logging_middleware.go
@@ -26,7 +26,7 @@ func LoggingMiddleware(logger *zap.Logger) Middleware {
 
 func (m *loggingMiddleware) Aggregate(ctx context.Context, spaceId string, envId string, collectionId string, filter *items.Filter, options ...*items.AggregateOptions) (result map[string]interface{}, err error) {
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceId),
 	)
 
 	result, err = m.next.Aggregate(ctx, spaceId, envId, collectionId, filter, options...)
@@ -40,7 +40,7 @@ func (m *loggingMiddleware) Aggregate(ctx context.Context, spaceId string, envId
 
 func (m *loggingMiddleware) AggregatePublished(ctx context.Context, spaceId string, envId string, collectionId string, filter *items.Filter, options ...*items.AggregatePublishedOptions) (result map[string]interface{}, err error) {
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceId),
 	)
 
 	result, err = m.next.AggregatePublished(ctx, spaceId, envId, collectionId, filter, options...)
@@ -53,8 +53,12 @@ func (m *loggingMiddleware) AggregatePublished(ctx context.Context, spaceId stri
 }
 
 func (m *loggingMiddleware) Archive(ctx context.Context, item *items.Item, options ...*items.ArchiveOptions) (err error) {
+	var spaceID string
+	if item != nil {
+		spaceID = item.SpaceID
+	}
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceID),
 		logzap.Event(items.EventArchiveItem),
 		logzap.Object(item),
 	)
@@ -70,8 +74,12 @@ func (m *loggingMiddleware) Archive(ctx context.Context, item *items.Item, optio
 }
 
 func (m *loggingMiddleware) Create(ctx context.Context, item *items.Item, opts ...*items.CreateOptions) (created *items.Item, err error) {
+	var spaceID string
+	if item != nil {
+		spaceID = item.SpaceID
+	}
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceID),
 		logzap.Event(items.EventCreateItem),
 	)
 
@@ -86,8 +94,12 @@ func (m *loggingMiddleware) Create(ctx context.Context, item *items.Item, opts .
 }
 
 func (m *loggingMiddleware) Delete(ctx context.Context, item *items.Item, options ...*items.DeleteOptions) (err error) {
+	var spaceID string
+	if item != nil {
+		spaceID = item.SpaceID
+	}
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceID),
 		logzap.Event(items.EventDeleteItem),
 		logzap.Object(item),
 	)
@@ -104,7 +116,7 @@ func (m *loggingMiddleware) Delete(ctx context.Context, item *items.Item, option
 
 func (m *loggingMiddleware) Find(ctx context.Context, spaceId string, envId string, collectionId string, filter *items.Filter, options ...*items.FindOptions) (items []*items.Item, total int, err error) {
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceId),
 	)
 
 	items, total, err = m.next.Find(ctx, spaceId, envId, collectionId, filter, options...)
@@ -119,7 +131,7 @@ func (m *loggingMiddleware) Find(ctx context.Context, spaceId string, envId stri
 
 func (m *loggingMiddleware) FindArchived(ctx context.Context, spaceId string, envId string, collectionId string, filter *items.Filter, options ...*items.FindArchivedOptions) (items []*items.Item, total int, err error) {
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceId),
 	)
 
 	items, total, err = m.next.FindArchived(ctx, spaceId, envId, collectionId, filter, options...)
@@ -133,7 +145,7 @@ func (m *loggingMiddleware) FindArchived(ctx context.Context, spaceId string, en
 
 func (m *loggingMiddleware) FindPublished(ctx context.Context, spaceId string, envId string, collectionId string, filter *items.Filter, options ...*items.FindPublishedOptions) (items []*items.Item, total int, err error) {
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceId),
 	)
 
 	items, total, err = m.next.FindPublished(ctx, spaceId, envId, collectionId, filter, options...)
@@ -147,7 +159,7 @@ func (m *loggingMiddleware) FindPublished(ctx context.Context, spaceId string, e
 
 func (m *loggingMiddleware) Get(ctx context.Context, spaceId string, envId string, collectionId string, itemId string, options ...*items.GetOptions) (item *items.Item, err error) {
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceId),
 		logzap.Object(id.NewItemId(spaceId, envId, collectionId, itemId)),
 	)
 
@@ -162,7 +174,7 @@ func (m *loggingMiddleware) Get(ctx context.Context, spaceId string, envId strin
 
 func (m *loggingMiddleware) GetPublished(ctx context.Context, spaceId string, envId string, collectionId string, itemId string, options ...*items.GetPublishedOptions) (item *items.Item, err error) {
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceId),
 		logzap.Object(id.NewItemId(spaceId, envId, collectionId, itemId)),
 	)
 
@@ -177,7 +189,7 @@ func (m *loggingMiddleware) GetPublished(ctx context.Context, spaceId string, en
 
 func (m *loggingMiddleware) GetRevision(ctx context.Context, spaceId string, envId string, collectionId string, itemId string, revisionId string, options ...*items.GetRevisionOptions) (item *items.Item, err error) {
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceId),
 		logzap.Object(id.NewItemId(spaceId, envId, collectionId, itemId)),
 	)
 
@@ -191,8 +203,12 @@ func (m *loggingMiddleware) GetRevision(ctx context.Context, spaceId string, env
 }
 
 func (m *loggingMiddleware) Introspect(ctx context.Context, item *items.Item, opts ...*items.IntrospectOptions) (itm *items.Item, sch *schema.Schema, err error) {
+	var spaceID string
+	if item != nil {
+		spaceID = item.SpaceID
+	}
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceID),
 		logzap.Object(item),
 	)
 
@@ -207,7 +223,7 @@ func (m *loggingMiddleware) Introspect(ctx context.Context, item *items.Item, op
 
 func (m *loggingMiddleware) ListRevisions(ctx context.Context, spaceId string, envId string, collectionId string, itemId string, options ...*items.ListRevisionsOptions) (items []*items.Item, err error) {
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceId),
 		logzap.Object(id.NewItemId(spaceId, envId, collectionId, itemId)),
 	)
 
@@ -221,8 +237,12 @@ func (m *loggingMiddleware) ListRevisions(ctx context.Context, spaceId string, e
 }
 
 func (m *loggingMiddleware) Publish(ctx context.Context, item *items.Item, options ...*items.PublishOptions) (err error) {
+	var spaceID string
+	if item != nil {
+		spaceID = item.SpaceID
+	}
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceID),
 		logzap.Event(items.EventPublishItem),
 		logzap.Object(item),
 	)
@@ -238,8 +258,12 @@ func (m *loggingMiddleware) Publish(ctx context.Context, item *items.Item, optio
 }
 
 func (m *loggingMiddleware) Unarchive(ctx context.Context, item *items.Item, options ...*items.UnarchiveOptions) (err error) {
+	var spaceID string
+	if item != nil {
+		spaceID = item.SpaceID
+	}
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceID),
 		logzap.Event(items.EventUnarchiveItem),
 		logzap.Object(item),
 	)
@@ -255,8 +279,12 @@ func (m *loggingMiddleware) Unarchive(ctx context.Context, item *items.Item, opt
 }
 
 func (m *loggingMiddleware) Undelete(ctx context.Context, item *items.Item, options ...*items.UndeleteOptions) (err error) {
+	var spaceID string
+	if item != nil {
+		spaceID = item.SpaceID
+	}
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceID),
 		logzap.Event(items.EventUndeleteItem),
 		logzap.Object(item),
 	)
@@ -272,8 +300,12 @@ func (m *loggingMiddleware) Undelete(ctx context.Context, item *items.Item, opti
 }
 
 func (m *loggingMiddleware) Unpublish(ctx context.Context, item *items.Item, options ...*items.UnpublishOptions) (err error) {
+	var spaceID string
+	if item != nil {
+		spaceID = item.SpaceID
+	}
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceID),
 		logzap.Event(items.EventUnpublishItem),
 		logzap.Object(item),
 	)
@@ -289,8 +321,12 @@ func (m *loggingMiddleware) Unpublish(ctx context.Context, item *items.Item, opt
 }
 
 func (m *loggingMiddleware) Update(ctx context.Context, item *items.Item, options ...*items.UpdateOptions) (err error) {
+	var spaceID string
+	if item != nil {
+		spaceID = item.SpaceID
+	}
 	logger := m.logger.With(
-		logzap.CallerFromContext(ctx),
+		logzap.CallerFromContext(ctx, spaceID),
 		logzap.Event(items.EventUpdateItem),
 		logzap.Object(item),
 	)
diff --git a/zap/field.go b/zap/field.go
index 308c21d6e83a4a80c35ab9866cb757e65c4b7a24..d66c9e2d3ffc575e410e0042d0f78b1281c6380b 100644
--- a/zap/field.go
+++ b/zap/field.go
@@ -55,8 +55,14 @@ func Caller(v any) zap.Field {
 }
 
 // CallerFromContext извлекает auth.Principal из контекста и устанавливает его в качестве "вызывающего" в формате Object.
-func CallerFromContext(ctx context.Context) zap.Field {
-	return Caller(auth.GetPrincipal(ctx))
+// Вторым параметром передается идентификатор пространства, который требуется, если вызывающий является auth.SpaceAccessor.
+// Если вызывающий не связан с пространством, следует передать пустую строку.
+func CallerFromContext(ctx context.Context, spaceID string) zap.Field {
+	principal := auth.GetPrincipal(ctx)
+	if accessor, ok := principal.(auth.SpaceAccessor); ok && spaceID != "" {
+		principal = accessor.Space(spaceID)
+	}
+	return Caller(principal)
 }
 
 func Attr(attr any) zap.Field {
diff --git a/zap/field_test.go b/zap/field_test.go
index 84efa584f85a66468e160334510e39ddee0246b0..21ecaabfce3edc9869003a6c0d46ca0e0446e83c 100644
--- a/zap/field_test.go
+++ b/zap/field_test.go
@@ -167,8 +167,8 @@ func TestCallerFromContext(t *testing.T) {
 		field zap.Field
 		want  zap.Field
 	}{
-		{name: "ok", field: CallerFromContext(ctx), want: zap.Reflect("caller", oid)},
-		{name: "invalid", field: CallerFromContext(context.TODO()), want: zap.Reflect("caller", (*id.ObjectId)(nil))},
+		{name: "ok", field: CallerFromContext(ctx, ""), want: zap.Reflect("caller", oid)},
+		{name: "invalid", field: CallerFromContext(context.TODO(), ""), want: zap.Reflect("caller", (*id.ObjectId)(nil))},
 	}
 
 	for _, tc := range tests {