2017-06-21 1 views
0

すべてのスタックトレースをキャプチャしたいRCPアプリケーションがあります。私は現在、mechansimのログにslf4jを使用しています。例として、EclipseでRCPアプリケーションを実行すると、コンソールウィンドウを見て、コードによって明示的に取り込まれていないスタックトレースを見ることができます。私がアプリケーションをエクスポートしてEclipseの外で実行すると、それらのスタックトレースは表示されません。 try/catchブロックを使用するコードを退屈に変更したくはありません(たくさんのコードがあるので)。私は、Eclipseが同じことをするためにどのような仕組みを使用しているのかを知りたいと思います(コード内にtry/catchを入れず、コンソールに報告します)。私のRCPコードの中でEclipseが何をするのか簡単な方法はありますか?私は外部からEclipseを実行するとログファイルに表示されますか?Java - すべてのスタックトレースをキャッチ

+0

Eclipse内からRCPを実行すると、新しいJVMが実行されて実行されます。 Eclipseコンソールは、新しいJVMが出力するすべてのものを表示します。だから、これはあなたがEclipseの外で使うことができるものではありません。 [この質問](https://stackoverflow.com/q/29900137/2670892)には、試すことができるいくつかの方法が記載されています。 –

+0

多分私は何かを見逃していますが、そのリンクはRCP 3x方法と内部パッケージ方法を示しています。どちらも、利用可能な解決策ではありません。私は別の方法を見逃しましたか? – ekjcfn3902039

+0

IEventLoopAdvisorは内部クラスですが、e4で未処理の例外をキャッチする最善の方法と思われます。かなりの数のe4 APIは依然として内部的に分類されていますが、設計はまだ完全には初期化されていないためです。それらは大幅に変更される可能性は低い(確かにEclipse Oxygenでは今月リリース)。 –

答えて

0

私はRCPフレームワークに精通していません。通常、キャッチされない例外の場合はスレッドグループハンドラを設定できます。

つまり、それぞれとキャッチされない例外に対してトリガされるコンポーネントを定義できます。そしてそのコンポーネントは、単に着信例外をログに記録することができます。

いくつかのコード例については、hereを参照してください。

関連する問題