EventConfiguration
@frozen
public struct EventConfiguration : Sendable
Realm 이벤트 기록을 위한 구성 매개변수입니다.
Realm 이벤트 기록을 활성화하려면 Realm.Configuration.eventConfiguration
을 nil이 아닌 EventConfiguration
로 설정합니다. 기본값으로 초기화된 구성은 유효하지만 일부 속성을 사용자 지정해야 할 수 있습니다.
Realm 이벤트 기록을 사용하려면 이벤트를 기록할 앱의 서버에 정의된 스키마에 collection 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)