プラグインからのログ出力

プラグインからログ出力する際は、ILogというクラスを利用する。
ILogは、org.eclipse.core.runtime.Plugin#getLogで取得できる


ILog log = YKHRPlugin.getDefault().getLog();


ログ出力は、ILog#log(IStatus)を使う。
# Statusのコンストラクタの第3引数の、codeっつーのがよくわからない。
# code the plug-in-specific status code, or OK らしいけど・・・。


IStatus status = new Status(IStatus.ERROR, YKHRPlugin.PLUGIN_ID, IStatus.ERROR, "Error", e);
YKHRPlugin.getDefault().getLog().log(status);




で、こんな実装を例外部分で毎回やっていてもアホくさいので、
プラグインクラスに、次のようなユーティリティメソッドを
作ることが多いみたい。


public static void log(Throwable e) {
log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, "Error", e));
}

public static void log(IStatus status) {
getDefault().getLog().log(status);
}


こうすれば、使うときはこれだけで済む。


try {
・・・
} catch(Exception e) {
YKHRPlugin.log(e);
}


logというメソッドじゃなくて、logErrorとかlogWarningといったメソッドを
用意しておくパターンも、よく見かけるなぁ。