ログ記録 - Kotlin SDK
バージョン 1.8.0 の新機能。
アプリケーションの開発またはデバッグ時に、アプリのログ レベルを設定または変更できます。 開発ニーズに応じて、ログ レベルを変更して、異なる量のデータをログに記録することをお勧めします。
注意
このページでは、Realm Kotlin SDK v1.8.0 で追加された Realm ロガーを設定する方法を説明します。 これにより、Realm Kotlin SDK の以前のバージョンでの同期クライアントのログ レベルの設定が上書きされます。 以前のバージョンで同期クライアントのログ レベルを設定する方法については、「 クライアント ログ レベルの設定 - Kotlin SDK 」を参照してください。
Realm ログレベルの設定
グローバルな 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()