Docs 菜单
Docs 主页
/ /
Atlas Device SDKs
/

日志记录 - Kotlin SDK

在此页面上

  • 设置 Realm 日志级别
  • 设置自定义记录器

版本 1.8.0 中的新增内容

在开发或调试应用程序时,您可以设置或更改应用程序的日志级别。 您可能希望根据开发需求更改日志级别以记录不同数量的数据。

注意

本页介绍如何设置 Realm 记录器,该记录器已添加到 Realm Kotlin SDK v1.8.0 中。 这取代了在早期版本的 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。

  • Java虚拟机(JVM)日志记录到 stdout。

  • MacOS 日志记录到 NSLog。

  • iOS 日志记录到 NSLog。

提示

要在开发应用程序时诊断和排除错误,请将日志级别设置为debugtrace 。 对于生产部署,请降低日志级别以提高性能。

您可以创建一个实现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()

后退

基于分区的同步