EventConfiguration
@frozen
public struct EventConfiguration : Sendable
Realm イベント記録の構成パラメーター。
Realm イベント記録を有効にするには、 Realm.Configuration.eventConfiguration
を nil 以外のEventConfiguration
に設定します。 デフォルトの初期化構成は有効ですが、一部のプロパティをカスタマイズする必要がある場合があります。
Realm イベント記録を使用するには、イベントを書き込むアプリのサーバーに定義されたスキーマにコレクションAuditEvent
を含める必要があります。 スキーマには、次のフィールドが含まれている必要があります。
_id
:ObjectId
activity
:String
event
:String?
data
:String?
timestamp
:Date
さらに、使用されるメタデータ キーごとにString?
フィールドが必要です。
-
生成された各イベントに添付されるメタデータ。 メタデータ 辞書内の各キーは、イベント Realm 内のその名前の列に保存されるため、監査イベント コレクション用にサーバー上で構成されたスキーマには、使用されるすべてのメタデータ フィールドを含める必要があります。 サーバー側スキーマでは、メタデータ フィールドは タイプ
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)