Registro - Kotlin SDK
Novidade na versão 1.8.0.
Você pode definir ou alterar o nível de registro do seu aplicativo ao desenvolver ou depurar seu aplicativo. Talvez você queira alterar o nível de registro para registrar diferentes quantidades de dados, dependendo de suas necessidades de desenvolvimento.
Observação
Esta página mostra como definir um registrador do Realm, que foi adicionado no Realm Kotlin SDK v1.8.0. Isso substitui a configuração do nível de registro do cliente de sincronização em versões anteriores do Realm Kotlin SDK. Para obter informações sobre como definir o nível de registro do cliente Sync em uma versão anterior, consulte Definir o nível de registro do cliente - Kotlin SDK.
Definir o nível de registro do Realm
Você pode definir o nível de registro do seu aplicativo usando o singleton global RealmLog . Você pode definir a propriedade RealmLog.level
como uma entrada no enumeração LogLevel para especificar o nível de dados que deseja receber. Se a prioridade do nível de registro for igual ou superior à prioridade definida em RealmLog.level
, o Realm registrará o evento.
Você pode alterar o nível de registro a qualquer ponto durante o ciclo de vida do aplicativo a partir deste singleton global. Esse comportamento difere do nível de registro do cliente de sincronização obsoleto, que tinha que ser definido antes de abrir um Realm sincronizado e não pode ser alterado.
// 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
Por padrão, todos os registros Go para um registrador de sistema padrão que varia de acordo com o sistema:
O Android registra no Logcat.
A JVM registra no stdout.
O MacOS registra no NSLog.
O iOS registra no NSLog.
Dica
Para diagnosticar e solucionar erros ao desenvolver seu aplicativo, defina o nível de registro como debug
ou trace
. Para sistemas de produção, diminua o nível de registro para melhorar o desempenho.
Definir um registrador personalizado
Você pode criar um registrador personalizado que implemente a interface do RealmLogger . Talvez você queira personalizar o registro para adicionar tags específicas ou definir níveis de registro específicos durante o desenvolvimento, o teste ou a depuração.
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 } }
Em seguida, você pode inicializar seu registrador personalizado e chamar o realmLog.add() para defini-lo como registrador para sua aplicação.
Você também pode remover um registrador específico ou remover todos os registradores, incluindo o registrador do 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()