Java-捕获所有堆栈跟踪

Java-捕获所有堆栈跟踪,java,eclipse,logging,eclipse-rcp,Java,Eclipse,Logging,Eclipse Rcp,我有一个RCP应用程序,我想为它捕获所有堆栈跟踪。我目前正在使用slf4j进行日志记录。例如,如果我在eclipse中运行我的RCP应用程序,我可以查看console窗口并看到代码未显式捕获的任何堆栈跟踪。如果我导出应用程序并在eclipse之外运行它,我将看不到这些堆栈跟踪。我不希望乏味地更改代码以使用try/catch块(因为有很多代码)。我更愿意使用Eclipse用来做同样事情的任何机制(它不会在代码中放入try/catch,但会在控制台中报告)。有没有一种简单的方法来完成Eclipse在

我有一个RCP应用程序,我想为它捕获所有堆栈跟踪。我目前正在使用slf4j进行日志记录。例如,如果我在eclipse中运行我的RCP应用程序,我可以查看console窗口并看到代码未显式捕获的任何堆栈跟踪。如果我导出应用程序并在eclipse之外运行它,我将看不到这些堆栈跟踪。我不希望乏味地更改代码以使用try/catch块(因为有很多代码)。我更愿意使用Eclipse用来做同样事情的任何机制(它不会在代码中放入try/catch,但会在控制台中报告)。有没有一种简单的方法来完成Eclipse在我的RCP代码中所做的事情,这样当我从Eclipse外部运行它时,它就会显示在我的日志文件中?

我不熟悉RCP框架;但通常,您可以为未捕获异常设置线程组处理程序

换句话说:您可以为每个和任何未捕获的异常定义一个触发的组件。该组件可以简单地记录传入的异常


请参阅以获取一些示例代码。

当您从Eclipse中运行RCP时,将启动一个新的JVM来运行它。Eclipse控制台只显示新JVM输出的所有内容。所以这不是Eclipse之外可以使用的东西。提到了一些你可以尝试的方法。也许我遗漏了一些东西,但那个链接显示了RCP 3x方式和内部包方式。两者都不是可行的解决方案。我错过了另一种方法吗?虽然IEventLoopAdvisor是一个内部类,但它似乎是捕获e4中未处理异常的最佳方法。相当多的E4API仍然被归类为内部API,因为设计还没有完全完成。它们不太可能发生显著的变化(在本月发布的EclipseOxygen中肯定是可以的)。(我将代码放在@PostContextCreate中,就像示例代码一样)。FWIW我正在使用Mars2(4.5.2)仅供参考,我也尝试了Platform.addLogListener(),但也没有捕获eclipse控制台中的内容