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