Docs Menu
Docs Home
/ /
Atlas Device SDK
/

ログ記録 - Kotlin SDK

項目一覧

  • Realm ログレベルの設定
  • カスタム ロガーを設定する

バージョン 1.8.0 の新機能

アプリケーションの開発またはデバッグ時に、アプリのログ レベルを設定または変更できます。 開発ニーズに応じて、ログ レベルを変更して、異なる量のデータをログに記録することをお勧めします。

注意

このページでは、Realm Kotlin SDK v1.8.0 で追加された Realm ロガーを設定する方法を説明します。 これにより、Realm Kotlin SDK の以前のバージョンでの同期クライアントのログ レベルの設定が上書きされます。 以前のバージョンで同期クライアントのログ レベルを設定する方法については、「 クライアント ログ レベルの設定 - Kotlin SDK 」を参照してください。

グローバルな RealmLog単一の を使用してアプリのログレベルを設定できます。 受信するデータのレベルを指定するには、 RealmLog.levelプロパティをLogLevel列挙のエントリに設定します。 ログレベルの優先順位がRealmLog.levelで定義された優先順位以上の場合、Realm はイベントをログに記録します。

このグローバル 単調な からアプリのライフサイクル中にいつでもログ レベルを変更できます。 この動作は、非推奨の同期クライアント ログ レベルとは異なります。このログは、同期済み 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されます。

  • Logcat への Android ログ。

  • stdout への JVM ログ。

  • MacOS のログを DNSLog に記録します。

  • iOS のログをNSLog に記録します。

Tip

アプリケーションの開発中にエラーを診断してトラブルシューティングを行うには、ログ レベルを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()

戻る

パーティションベースの同期