プラグインからのログ出力
プラグインからログ出力する際は、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といったメソッドを
用意しておくパターンも、よく見かけるなぁ。