我正在研究Eclipse RCP插件。插件中的一个命令执行一些数据验证,并将消息记录到Eclipse错误日志视图。
我希望命令在开始工作之前清除错误日志,这样当命令完成时,错误日志只包含与命令最近调用相关的错误。
我发现我可以通过这样做删除日志文件:
Platform.getLogFileLocation().toFile().delete();
然而,正如您所料,错误日志不会刷新其内容只是因为我躲在它后面并删除了该文件。
我在org.eclipse.ui.internal.views.log.LogView
中逛了一圈,虽然我确实看到了视图更新的地方,但我没有看到触发“清除和刷新”的简单方法。
有没有办法让错误日志仔细检查其后备文件并自行刷新?或者,是否有更“合理”的方式来清除视图?
更新:让日志自动更新的一种有点愚蠢的方法是记录其他内容。
我正在删除旧的日志文件后立即记录“info”消息,这不是理想的,但它让我足够接近我想要的位置,现在:
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..."));
答案 0 :(得分:1)
首先,您说您正在创建RCP产品。日志视图来自PDE插件,因此除非您在RCP中有意指定它,否则它将永远不会对您的用户可用。 请注意,您的开发启动配置可能会将其作为启动的一部分包含在内,但它可能不在您的实际RCP中。
对于你的问题 - 如果没有对LovView类的私有/受保护成员进行严重破解,我看不到任何简单的方法。 如果您打算在RCP中包含LogView,可以考虑扩展LogView,并公开删除日志的方法(或在删除日志文件后立即调用'protected'reloadLog())。
希望有所帮助