重定向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方法中解决了这个问题。