【问题标题】:Proper Logging for Eclipse plug-in developmentEclipse 插件开发的正确日志记录
【发布时间】:2015-04-13 10:51:57
【问题描述】:

当我捕捉到我抛出的异常时,该异常的正确日志记录是什么?我知道用户可以在 Eclipse 中看到“错误日志”视图。

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

  1. 只需打印堆栈跟踪。这会显示在“错误日志”视图中吗?
  2. Activator.getDefault().log(e.getMessage(), e); 在每个 catch 子句中, 我可以使用关联的 Activator 记录信息 插件 ID。

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

【问题讨论】:

    标签: java eclipse logging error-handling eclipse-plugin


    【解决方案1】:

    打印堆栈跟踪不会进入错误日志,只会丢失(从 Eclipse 中或使用控制台运行时除外)。

    基于Activator 的日志记录是常用的日志记录方式。 PluginAbstractUIPlugin 类提供的代码日志为:

    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 中定义为插件激活器的类。

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

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

    ILog log = Platform.getLog(bundle);
    

    其中bundle 是插件的Bundle

    【讨论】:

    • 酷。谢谢格雷格!并且基于 Activator 的日志会进入错误日志?
    • 是的,日志记录在工作区 .metadata 目录中的 .log 文件中。
    • 这是什么Activator 类?从什么包和插件?我想我已经用getDefaultgetLog 方法尝试了所有方法。
    • @Lii 如果您在创建插件时让 Eclipse 为您创建 Activator 并指定“插件对 UI 做出贡献”,那么创建的 Activator 具有 getDefault() 并扩展了 @987654338 @.
    • 也许这个信息在 2019-12 年已经过时了,但我正在尝试这样做,@Lii 的评论是相关的,我不明白你的答案。当我尝试将该调用插入到“Activator.getDefault()”然后添加导入时,所有 FQCN 选项都没有“getDefault()”方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多