Docs Menu
Docs Home
/ /
Atlas Device SDK
/

로깅 - Kotlin SDK

이 페이지의 내용

  • Realm 로그 수준 설정
  • 사용자 지정 로거 설정

버전 1.8.0에 추가 되었습니다.

애플리케이션을 개발하거나 디버깅할 때 앱의 로그 수준을 설정하거나 변경할 수 있습니다. 개발 요구 사항에 따라 다른 양의 데이터를 기록하도록 로그 수준을 변경할 수 있습니다.

참고

이 페이지에서는 Realm 코틀린 SDK (Kotlin SDK) v1.8.0에 추가된 Realm 로거를 설정하는 방법을 설명합니다. 이는 이전 버전 Realm Kotlin SDK의 동기화 클라이언트 로그 수준 설정을 대체합니다. 이전 버전에서 동기화 클라이언트 로그 수준을 설정하는 방법에 대한 자세한 내용은 클라이언트 로그 수준 설정 - Kotlin SDK를 참조하세요.

글로벌 RealmLog 싱글톤을 사용하여 앱의 로그 수준을 설정하다 수 있습니다. RealmLog.level 속성 을 LogLevel 열거형 의 항목으로 설정하다 하여 수신하려는 데이터 수준을 지정할 수 있습니다. 로그 수준 우선 순위 가 RealmLog.level 에 정의된 우선 순위 순위와 같거나 높으면 Realm 은 이벤트 를 기록합니다.

이 글로벌 싱글톤에서는 앱 라이프사이클 중 점에서 로그 수준을 변경할 수 있습니다. 이 동작은 동기화된 영역을 열기 전에 설정해야 하며 변경할 수 없는 더 이상 사용되지 않는 동기화 클라이언트 로그 수준 과는 다릅니다.

// Set a log level using the global RealmLog singleton
RealmLog.level = LogLevel.TRACE
// Access your app and use realm
val app: App = App.create(YOUR_APP_ID) // Replace this with your App ID
val user = app.login(Credentials.emailPassword(email, password))
val config = SyncConfiguration.Builder(user, setOf(Toad::class))
.initialSubscriptions { realm ->
add(realm.query<Toad>("name == $0", "name value"), "sync subscription")
}
.build()
val realm = Realm.open(config)
// You can change the log level at any point in your app's lifecycle as needed
RealmLog.level = LogLevel.INFO

기본적으로 모든 로그는 시스템에 따라 다른 기본 시스템 로거로 Go합니다.

  • Android는 Logcat에 로그합니다.

  • JVM 로그를 stdout에 기록합니다.

  • MacOS 로그를 NSLog에 기록합니다.

  • iOS 로그를 NSLog에 기록합니다.

애플리케이션을 개발하는 동안 오류를 진단하고 문제를 해결하려면 로그 수준을 debug 또는 trace 로 설정합니다. 프로덕션 배포의 경우 로그 수준을 낮추면 성능이 향상됩니다.

RealmLogger 인터페이스를 구현하는 사용자 지정 로거를 만들 수 있습니다. 개발, 테스트 또는 디버깅 중에 특정 태그를 추가하거나 특정 로그 수준을 설정하다 하기 위해 로깅을 사용자 지정할 수 있습니다.

class MyLogger() : RealmLogger {
override val tag: String = "CUSTOM_LOG_ENTRY"
override val level: LogLevel = LogLevel.DEBUG
override fun log(
level: LogLevel,
throwable: Throwable?,
message: String?,
vararg args: Any?
) {
println(message) // Custom handling
}
}

그런 다음 사용자 지정 로거를 초기화하고 RealmLog.add() 함수를 사용하여 앱의 로거로 설정합니다.

특정 로거를 제거하거나 시스템 로거를 포함한 모든 로거를 제거할 수도 있습니다.

// Set an instance of a custom logger
val myCustomLogger = MyLogger()
RealmLog.add(myCustomLogger)
// You can remove a specific logger
RealmLog.remove(myCustomLogger)
// Or remove all loggers, including the default system logger
RealmLog.removeAll()

돌아가기

파티션 기반 동기화