Eclipse 插件开发的正确日志记录

Proper Logging for Eclipse plug-in development

当我捕捉到抛出的异常时,该异常的正确记录是什么?我知道用户可以在 Eclipse 中看到 "error log" 视图。

我可以通过以下几种不同的方式登录...不确定哪种方式最好,也不确定以这种方式登录时用户会看到什么。

  1. 简单地打印堆栈跟踪。这会显示在 "error log" 视图中吗?
  2. Activator.getDefault().log(e.getMessage(), e); 在每个 catch 子句中, 我可以使用关联的 Activator 记录信息 插件 ID。

是否有更好的方法在 eclipse 中记录错误?

打印堆栈跟踪不会进入错误日志,它只会丢失(除非 运行 来自 Eclipse 或控制台)。

基于Activator的日志记录是通常的日志记录方式。 PluginAbstractUIPlugin class 提供的代码记录是:

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

log.log(new Status(....));

Status 有许多不同的构造函数,具体取决于您要记录的内容。例如:

new Status(IStatus.ERROR, ID, errorNumber, message, exception);

new Status(IStatus.ERROR, message, exception);

Activator是插件的MANIFEST.MF.

Bundle-Activator定义为插件激活器的class

如果插件没有激活器,您可以通过以下方式获取 ILog

ILog log = Platform.getLog(getClass());

ILog log = Platform.getLog(bundle);

其中 bundle 是插件的 Bundle