【问题标题】:Clear the Eclipse Error Log view from my plugin从我的插件中清除 Eclipse 错误日志视图
【发布时间】:2011-07-28 05:17:44
【问题描述】:

我正在开发一个 Eclipse RCP 插件。插件中的一个命令会进行一些数据验证,并将消息记录到 Eclipse 错误日志视图。

我希望命令在开始工作之前清除错误日志,这样当命令完成时,错误日志只包含与命令最近调用相关的错误。

我发现我可以通过这样做来删除日志文件本身:

Platform.getLogFileLocation().toFile().delete();

但是,正如您所料,错误日志不会仅仅因为我偷偷溜到它背后删除了那个文件而刷新它的内容。

我在org.eclipse.ui.internal.views.log.LogView 中四处寻找,虽然我确实看到了视图自行更新的地方,但我没有看到触发“清除和刷新”的直接方法。

有没有办法让错误日志再次检查其支持文件并自行刷新?或者,有没有更“合理”的方式来清除视图?

更新:让日志自行更新的一种略显笨拙的方法是记录其他内容

我目前在删除旧日志文件后立即记录“信息”消息,这并不理想,但它让我足够接近我想要的位置,目前:

Platform.getLogFileLocation().toFile().delete();
Plugin plugin = Plugin.getPlugin();
ILog log = plugin.getLog();
log.log(new Status(IStatus.INFO, Plugin.PLUGIN_ID, "Starting utility validation pass..."));

【问题讨论】:

    标签: java eclipse eclipse-rcp


    【解决方案1】:

    首先,您说您正在创建 RCP 产品。日志视图来自 PDE 插件,因此除非您有意在 RCP 中指定它,否则您的用户将永远无法使用它。 请注意,您的开发启动配置可能会将其作为启动的一部分包含在内,但它可能不在您的实际 RCP 中。

    对于您的问题 - 如果不对 LovView 类的私有/受保护成员进行严重破解,我看不到任何简单的方法。 如果您打算在 RCP 中包含 LogView,则可以考虑扩展 LogView,并公开一个删除日志的方法(或在删除日志文件后立即调用“受保护的”reloadLog())。

    希望有帮助

    【讨论】:

    • 我们包含来自 PDE 的视图,是的。扩展 LogView 是一个有趣的概念。想到的第一个问题是日志视图显然不在我正在处理的插件中。期望我的插件将来可能在多个基于 RCP 的项目中使用,所有这些都基于我的团队使用的通用“目标平台”。所以现在期望其他项目都包含“默认”日志视图是合理的。我们必须调整“目标平台”以使用“自定义”日志视图。绝对值得深思;非常感谢。
    • 接受 sgibly 的回答,因为我目前的“解决方法”包含两种不同风格的“kludge”,他扩展 LogView 的想法是一个很好的想法。
    猜你喜欢
    • 2017-08-28
    • 2014-12-17
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    相关资源
    最近更新 更多