我目前正在开发一个RCP Eclipse应用程序。出于记录目的,我在log4j上使用SFL4J。对于我自己的代码,这很有效,因为我可以指定正确的记录器(LoggerFactory.getLogger ... logger.debug ...)。但是如何将所有插件日志重定向到同一位置,以便我可以在我的log4j-LogFile中看到来自其他rcp插件的所有异常。如何在我的日志文件中记录未捕获的异常?
我听说过ILog,但我不知道如何将它重定向到我的log4j / slf4j实现。
那么在一个日志文件中记录所有插件消息的最佳方法是什么?
答案 0 :(得分:4)
要捕获整个平台的日志事件,请创建ILogListener实例并使用Platform.addLogListener(ILogListener)注册它。
对于记录未捕获的异常,一种方法是创建一个新的ThreadGroup并覆盖uncaughtException(Thread t,Throwable e)以记录异常。然后,您必须在该线程组中启动一个新线程并执行其中的所有其他操作。我在我的IPlatformRunnable实现的run方法中处理这个问题。