// 下階層用テンプレート #topicpath ---- //ここにコンテンツを記述します。 Eclipseにはエラー情報を表示するエラー・ログビューがありますが、そのビューの使い方です。 #contents #ref(error.png) エラー・ログビュー ~ #ref(detail.png) その詳細画面 ***使い方 [#m6e1e7cf] このビューにエラー内容を表示するには以下の記述をすればよいようです。 IStatus status = new Status(IStatus.ERROR, SamplePlugin .getPluginId(), IStatus.OK, "メッセージ", new Exception("エラーメッセージ")); SamplePlugin.getDefault().getLog().log(status); 2行目のlogメソッドが呼ばれたときに、与えられたstatus(IStatusの実装クラス)オブジェクトの内容をログに出力します。Statusオブジェクトはエラーなどの状況を格納したクラスです。コンストラクタの引数の意味は以下の通り。 /** * Creates a new status object. The created status has no children. * * @param severity the severity; one of <code>OK</code>, <code>ERROR</code>, * <code>INFO</code>, <code>WARNING</code>, or <code>CANCEL</code> * @param pluginId the unique identifier of the relevant plug-in * @param code the plug-in-specific status code, or <code>OK</code> * @param message a human-readable message, localized to the * current locale * @param exception a low-level exception, or <code>null</code> if not * applicable */ public Status(int severity, String pluginId, int code, String message, Throwable exception) さて、エラー・ログビューは重要度やメッセージなどの項目がありますが、各項目はStatusオブジェクトの値に対応してるみたいです。具体的には以下のような対応になっています。 -重要度:Statusの第1引数。上の例だとIStatus.ERROR -メッセージ:Statusの第4引数。上の例だと"メッセージ" -プラグイン:Statusの第2引数。上の例だとSamplePlugin.getPluginId() -日付:ログ出力をした日付。 -例外スタック・トレース:Statusの第5引数のstackTrace。上の例だとnew Exception("エラーメッセージ")のstackTraceです。 -セッション・データ:??よくわかんなかったです。 このようにログに出力したい内容をStatusに格納してあげればよいわけですね。 ***MultiStatusを使う [#p93fc9a7] MultiStatusとは、複数のエラーを同時に扱う場合に使用するStatusの拡張クラスです。このクラスは内部に複数のStatusクラスを格納することができます。具体的なコードは以下の通り。 MultiStatus mStatus = new MultiStatus(SamplePlugin .getPluginId(), IStatus.OK, "マルチステータスのメッセージ", new Exception("マルチのエラーメッセージ")); IStatus status = new Status(IStatus.ERROR, SamplePlugin .getPluginId(), IStatus.OK, "メッセージ1", new Exception( "エラーメッセージ1")); mStatus.add(status); status = new Status(IStatus.INFO, SamplePlugin.getPluginId(), IStatus.OK, "メッセージ2", new Exception("エラーメッセージ2")); mStatus.add(status); SamplePlugin.getDefault().getLog().log(mStatus); この出力結果は以下のようになります。 #ref(multi.png) 次は[[エラーダイアログの制御>Eclipse/プラグイン開発のTIPS集/エラーダイアログの制御]]を調べてみます。 ---- この記事は #vote(おもしろかった[4],そうでもない[2]) -RCPで使おうとすると、プラグインなんてカラムいらねぇ。消す制御ができればよいなあと思ったけど、Extendsして使うのかなぁ。 -- [[きの]] &new{2006-08-13 08:55:10 (日)}; #comment #topicpath SIZE(10){現在のアクセス:&counter;}