Eclipse 插件开发的正确日志记录
Proper Logging for Eclipse plug-in development
当我捕捉到抛出的异常时,该异常的正确记录是什么?我知道用户可以在 Eclipse 中看到 "error log" 视图。
我可以通过以下几种不同的方式登录...不确定哪种方式最好,也不确定以这种方式登录时用户会看到什么。
- 简单地打印堆栈跟踪。这会显示在 "error log" 视图中吗?
Activator.getDefault().log(e.getMessage(), e);
在每个 catch 子句中,
我可以使用关联的 Activator 记录信息
插件 ID。
是否有更好的方法在 eclipse 中记录错误?
打印堆栈跟踪不会进入错误日志,它只会丢失(除非 运行 来自 Eclipse 或控制台)。
基于Activator
的日志记录是通常的日志记录方式。 Plugin
或 AbstractUIPlugin
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
。
当我捕捉到抛出的异常时,该异常的正确记录是什么?我知道用户可以在 Eclipse 中看到 "error log" 视图。
我可以通过以下几种不同的方式登录...不确定哪种方式最好,也不确定以这种方式登录时用户会看到什么。
- 简单地打印堆栈跟踪。这会显示在 "error log" 视图中吗?
Activator.getDefault().log(e.getMessage(), e);
在每个 catch 子句中, 我可以使用关联的 Activator 记录信息 插件 ID。
是否有更好的方法在 eclipse 中记录错误?
打印堆栈跟踪不会进入错误日志,它只会丢失(除非 运行 来自 Eclipse 或控制台)。
基于Activator
的日志记录是通常的日志记录方式。 Plugin
或 AbstractUIPlugin
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
。