Top / Eclipse / プラグイン開発のTIPS集 / エラーログの制御

Eclipseにはエラー情報を表示するエラー・ログビューがありますが、そのビューの使い方です。

error.png

エラー・ログビュー


detail.png

その詳細画面

使い方

このビューにエラー内容を表示するには以下の記述をすればよいようです。

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?を使う

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);

この出力結果は以下のようになります。

multi.png

次はエラーダイアログの制御を調べてみます。


この記事は

選択肢 投票
おもしろかった 11  
そうでもない 2  
  • RCPで使おうとすると、プラグインなんてカラムいらねぇ。消す制御ができればよいなあと思ったけど、Extendsして使うのかなぁ。 -- きの? 2006-08-13 08:55:10 (日)

Top / Eclipse / プラグイン開発のTIPS集 / エラーログの制御

現在のアクセス:17902


添付ファイル: filemulti.png 1386件 [詳細] filedetail.png 1520件 [詳細] fileerror.png 1357件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-09-25 (日) 18:07:21 (2994d)