【问题标题】:Eclipse RCP add entry in LogView without console printEclipse RCP 在没有控制台打印的 LogView 中添加条目
【发布时间】:2014-10-15 07:24:44
【问题描述】:

我想在“错误日志”视图中添加日志行,而不在控制台中打印这些日志,这是因为我想通过 log4j 管理控制台日志。

这个想法是使用创建一个自定义记录器:

  1. 使用 log4j 在控制台打印日志
  2. 使用 Eclipse RCP 功能在“错误日志”视图中打印日志
  3. 最终向用户显示错误对话框

我不想要 Eclipse RCP 控制台日志,因为在这种情况下,我会在控制台中增加一倍的日志。

如何在“错误日志”视图中添加条目而不在控制台中打印它们?

---更新

控制台输出是指以这种方式格式化的消息:

!ENTRY com.plugin.id 4 0 2014-10-15 11:37:04.314
!MESSAGE Error Messge

!STACK 0
---stack trace

我不想在控制台输出中看到这些消息,但我只想在 LogView 中看到条目:

【问题讨论】:

  • 那么您的实际问题是什么?
  • 如何在“错误日志”视图中添加条目而不在控制台中打印它们?
  • Eclipse 日志条目总是至少有 !ENTRY 和 !MESSAGE 行。
  • 所以不可能只在日志视图(help.eclipse.org/juno/…)而不是在控制台中添加日志条目?

标签: java logging eclipse-rcp


【解决方案1】:

使用 Eclipse ILog 接口写入 Eclipse 日志。

如果你的插件有一个派生自Plugin(或AbstractUIPlugin)的激活器,你可以使用

Plugin.getLog();

你也可以使用

ILog log = Platform.getLog(bundle);

bundle 是您的插件 Bundle - 您可以通过以下方式获得:

Bundle bundle = Platform.getBundle("plugin id");

一旦你拥有ILog 使用

IStatus status = new Status(IStatus.ERROR, "plugin id", error code, "Message", throwable);

log.log(status);

Status 有几个不同复杂度的构造函数,我展示了最通用的。

对于 Eclipse e4 应用程序,您还可以使用 StatusReporter

【讨论】:

  • 感谢您的回复,但通过这种方式,我将在控制台和日志视图中都有日志。我想要的只是日志视图中的日志,因为 Log4j 提供了控制台日志。
  • 对不起,我不明白你在说什么。 ILog 只写入 Eclipse 错误日志。
猜你喜欢
  • 2015-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-27
  • 1970-01-01
  • 1970-01-01
  • 2012-05-18
  • 2022-01-08
相关资源
最近更新 更多