在Eclipse RCP应用程序中,如何在启动时自动记录每个插件?
我知道这些,但我正在寻找更类似于Java的-verbose:class
:
这感觉就像一个应该存在的选项。似乎应该有一个选项来自动记录插件的bundle-state更改。但是在网上和书本上快速搜索之后我找不到任何东西。我错过了一些明显的东西吗?
答案 0 :(得分:3)
OSGi已将捆绑状态更改记录到日志服务。请参阅OSGi Compendium规范的第101章。
如果要使用标准日志服务以外的某些特定机制记录软件包启动事件,则可以编写BundleListener
。诀窍是让你的监听器尽早注册,以便捕获所有其他正在启动的bundle(显然,如果包含监听器的bundle最后启动,那么它将无法看到这些事件)。
如果您控制顶级应用程序,那么您应该能够从OSGi启动程序注册侦听器,即使用系统包本身的BundleContext
。但是启动程序通常控制启动bundle,这意味着记录bundle开始的时间是你的代码在每个代码上调用start()
的时候!这完全取决于您的应用程序的结构。