Java Eclipse跟踪。什么是最佳实践?如何获取DebugTrace实例?

Java Eclipse跟踪。什么是最佳实践?如何获取DebugTrace实例?,java,eclipse,eclipse-rcp,Java,Eclipse,Eclipse Rcp,我正在研究RCP应用程序,它在Eclipse4平台(Luna)上工作。我需要找出如何获取在我的应用程序中实现跟踪的实例。我找到了以下方法 - 使用ILog接口,可以通过Platform.getLog调用获取。伊洛格很有道理。它将打印到位于.metadata中的.log文件,但 它获取IStatus对象作为参数。所以,为了记录要记录的每一行,我必须创建Status对象的新实例。而且它不能自动放置有关调用方的信息,如类名等(如Log4j、LogBack) 我发现接口DebugTrace为跟踪提供了

我正在研究RCP应用程序,它在Eclipse4平台(Luna)上工作。我需要找出如何获取在我的应用程序中实现跟踪的实例。我找到了以下方法 -

  • 使用ILog接口,可以通过Platform.getLog调用获取。伊洛格很有道理。它将打印到位于.metadata中的.log文件,但 它获取IStatus对象作为参数。所以,为了记录要记录的每一行,我必须创建Status对象的新实例。而且它不能自动放置有关调用方的信息,如类名等(如Log4j、LogBack)

  • 我发现接口DebugTrace为跟踪提供了良好的功能。可以通过DebugOptions inerface(DebugOptions.newDebugTrace())获得。遗憾的是,我找不到合适的方法来获取调试选项的实例


要使用DebugTrace,请将其添加到插件激活器:

private DebugTrace tracer = null;

public static DebugTrace getTrace()
{
    return plugin.tracer;
}

public void start(final BundleContext context) throws Exception
{
...

final Hashtable<String, String> properties = new Hashtable<String, String>(4);
properties.put(DebugOptions.LISTENER_SYMBOLICNAME, "org.eclipse.ui.trace"); //$NON-NLS-1$
context.registerService(
    DebugOptionsListener.class.getName(),
    new DebugOptionsListener()
    {
        @Override
        public void optionsChanged(DebugOptions options)
        {
            tracer = options.newDebugTrace(context.getBundle().getSymbolicName());
        }
    }, properties);

希望这有帮助…

文件是否强制提供选项?我只能在启动应用程序时切换-debug选项吗?。还有一个问题文件。应该为应用程序中的每个插件创建选项,或者为整个应用程序创建一个选项。您需要为每个插件执行此操作。也可以在运行时更改选项。我认为有一个标准的首选项页面,您可以包括、启用和修改跟踪选项。(我会在找到信息后更新我的答案)保罗,非常感谢
# Editor-related tracing
com.acme.atf.app/trace/editor=false

#Start-up tracing
com.acme.atf.app/trace/startup=true

org.eclipse.core.jobs/jobs=true
org.eclipse.core.jobs/jobs/beginend=true
org.eclipse.core.jobs/jobs/errorondeadlock=true