Nuevo en la versión 1.8.0.
Puedes establecer o cambiar el nivel de registro de tu aplicación al desarrollar o depurar tu aplicación. Es posible que quieras cambiar el nivel de registro para registrar diferentes cantidades de datos dependiendo de tus necesidades de desarrollo.
Nota
Esta página muestra cómo configurar un registrador de Realm, añadido en el SDK de Kotlin de Realm1.8.0 v. Esto reemplaza la configuración del nivel de registro del cliente de sincronización en versiones anteriores del SDK de Kotlin de Realm. Para obtener información sobre cómo configurar el nivel de registro del cliente de sincronización en una versión anterior, consulte "Configurar el nivel de registro del cliente - SDK de Kotlin".
Establecer el nivel de registro del reino
Puede configurar el nivel de registro de su aplicación utilizando el global
Singleton deRealmLog. Puede configurar el RealmLog.level Propiedad a una entrada en la enumeración LogLevel para especificar el nivel de datos que desea recibir. Si la prioridad del nivel de registro es igual o superior a la definida RealmLog.level en, Realm registra el evento.
Puedes cambiar el nivel de registro en cualquier momento durante el ciclo de vida de la aplicación desde este singleton global. Este comportamiento difiere del nivel de registro del cliente de sincronización obsoleto, que debía configurarse antes de abrir un dominio sincronizado y no se podía cambiar.
// 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
De forma predeterminada, todos los registros van a un registrador de sistema predeterminado que varía según el sistema:
Registros de Android en Logcat.
JVM registra en stdout.
MacOS registra en NSLog.
Registros de iOS en NSLog.
Tip
Para diagnosticar y solucionar errores locales en la aplicación, establezca el nivel de registro en debug o trace. Para implementaciones de producción, disminuye el nivel de registro para mejorar el rendimiento.
Establece un registrador personalizado
Puedes crear un registrador personalizado que implemente la interfaz RealmLogger. Es posible que quieras personalizar el registro para añadir etiquetas específicas o establecer niveles de registro específicos durante el desarrollo, las pruebas o la depuración.
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 } }
Luego, puede inicializar su registrador personalizado y llamar a la función RealmLog.add() para configurarlo como un registrador para su aplicación.
También puede eliminar un registrador específico o eliminar todos los registradores, incluido el registrador del sistema.
// 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()