EventConfiguration
@frozen
public struct EventConfiguration : Sendable
Realm 事件记录的配置参数。
通过将Realm.Configuration.eventConfiguration
设置为任何非零的EventConfiguration
来启用 Realm 事件记录。 默认初始化的配置是有效的,但某些属性可能需要自定义。
使用 Realm 事件记录需要在您将向其写入事件的应用的服务器上定义的模式中包含集合AuditEvent
。 模式必须包含以下字段:
_id
:ObjectId
activity
:String
event
:String?
data
:String?
timestamp
:Date
String?
此外,每个使用的元数据键都必须有一个字段。
-
附加到生成的每个事件的元数据。 元数据字典中的每个键都存储在事件Realm中具有该名称的列中,因此在服务器上为 AuditEvent集合配置的模式必须包括将使用的所有元数据字段。 在服务器端模式中,元数据字段的类型必须为
String?
。声明
Swift
public var metadata: [String : String]?
-
在随机生成的分区值之前添加的string ,用于将事件数据上传到服务器。 可以对其进行自定义,以确保您可以区分事件分区和应用程序使用的分区。
声明
Swift
public var partitionPrefix: String
-
记录器回调函数。 此函数应该是线程安全的,因为它可以同时从多个线程调用。
声明
Swift
public typealias LoggerFunction = @Sendable (SyncLogLevel, String) -> Void
-
一个记录器,将被调用以报告有关在背景事件线程上完成的工作的信息。 如果为
nil
,则会将其报告给SyncManager
的记录器。声明
Swift
@preconcurrency public var logger: LoggerFunction?
-
错误处理程序,如果在上传事件数据时发生同步错误,则会调用该错误处理程序。 如果为
nil
,将记录错误,然后调用abort()
。 生产使用应始终定义自定义错误处理程序,除非需要在出错时中止。声明
Swift
@preconcurrency public var errorHandler: (@Sendable (Swift.Error) -> Void)?
-
创建一个启用Realm事件记录的
EventConfiguration
。声明
Swift
@preconcurrency public init(metadata: [String: String]? = nil, syncUser: User? = nil, partitionPrefix: String = "events", logger: LoggerFunction? = nil, errorHandler: (@Sendable (Swift.Error) -> Void)? = nil)