重定向ILog消息

时间:2020-03-06 14:58:05  来源:igfitidea点击:

我目前正在开发RCP Eclipse应用程序。出于日志记录的目的,我在log4j上使用SFL4J。对于我自己的代码,这很好用,因为我可以指定正确的记录器(LoggerFactory.getLogger ... logger.debug ...)。但是,如何将所有插件日志重定向到同一位置,以便在我的log4j-LogFile中也可以看到其他rcp插件的所有异常。如何在日志文件中记录未捕获的异常?

我听到了一些有关ILog的信息,但我不知道如何将其重定向到我的log4j / slf4j实现。

那么,将所有插件消息记录在一个日志文件中的最佳方法是什么?

解决方案

要捕获整个平台的日志事件,请创建一个ILogListener实例,然后使用Platform.addLogListener(ILogListener)对其进行注册。

至于记录未捕获的异常,一种方法是创建一个新的ThreadGroup并重写uncaughtException(Thread t,Throwable e)来记录异常。然后,我们必须在该线程组中启动一个新线程,并在其中进行其他所有操作。我在实现IPlatformRunnable的run方法中解决了这个问题。