2017-08-31 7 views
1

のグローバルハンドラが必要です。rxJava2システムのどの部分でも発生したスタックトレースをログに記録するために、サブスクライバのonErrorに例外が渡されました。
最初の rxJavaのバージョンは、正確にはこのことを行うRxJavaHooks.setOnErrorメソッドです。rxJava2のすべての例外のスタックトレースを記録するにはどうすればよいですか?

RxJavaHooks.setOnError(throwable -> Log.w(TAG, "rx error", throwable)); 

しかしrxJava2内のクラスが削除されたことを、彼らはロジックに気づいたようRxJavaPluginsクラスに移動されました。これには類似の名前付きメソッドRxJavaPlugins.setErrorHandlerがありますが、実際には呼び出しの目的はまったく異なります。それは配送不能例外を処理します。 すべての例外をログに記録するにはどうすればいいですか?
私は本当にUPD
システムで観察すべての特定にロガーを添付する必要はありません:多分あなたはそれを行うための簡単な方法がないだけでAndroidシステムのためのいくつかのアドバイス

答えて

1

を持っています。すべての主要反応タイプにonSubscribeまたはonAssemblyフックをインストールしてから、Subscriberを内部の最適化を予期せずに妨げないようにラップしなければなりません。

は、フローがアセンブルされたときに現在のスレッドのスタックトレースをキャプチャし、その情報を(実際に必要とする)onError例外に結びつけます。

+0

指さしてくれてありがとう、私はそれをチェックします – Beloo