2011-05-20 80 views
0

我創建了一個Eclipse RCP「Hello World」 - 插件,它正在運行並向我顯示主窗口,然後我創建了第二個名爲「logging」的插件,其中包含logback庫,並將該插件添加爲主插件的依賴項。如何在Eclipse RCP插件中訪問logback.xml?

主插件現在知道記錄器類,我可以使用它們,但是如何從主插件到達「logback.xml」文件?該文件存儲在logging-plugin中的「resources」文件夾中。

-mainplugin <---knows logging classes, but not reaching logback.xml 
-logging 
|-libs 
|-resources 
    |-logback.xml  
+0

爲什麼主插件需要了解logback.xml? 「日誌記錄」是否有寫入logback.xml的方法?在我看來,主插件應該調用「日誌記錄」方法。 – 2011-05-20 14:17:59

+0

我也使用loggin-plugin來記錄主插件中發生的一些事件,所以這個類需要logback.xml來對安裝級別作出反應,等等...... – 2011-05-21 10:14:00

回答

1

logback.xml是你的日誌記錄,在這裏你將日誌級別ECT的一個配置文件。 ... 對?在這種情況下,它屬於mainplugin,而不屬於日誌插件(它只會暴露libs文件夾中的jar文件的方法)。

像這樣:

-mainplugin 
|-resources 
    |-logback.xml 
-logging 
|-libs 

爲了工作,你會在你的插件和lockback.xml必須在類路徑設置好友政策(!)。這需要允許日誌插件在您的插件中查找lockback.xml,而不會有直接的依賴關係。

在日誌的MANIFEST.MF

插件,您必須添加:

Eclipse-BuddyPolicy: registered 

在你mainplugin的MANIFEST.MF你就必須添加:

Eclipse-RegisterBuddy: org.logplugin.id 

org.logplugin.id是您的日誌記錄插件的ID。

更多信息:http://www.eclipsezone.com/articles/eclipse-vms/

+0

啊,好吧,所以我必須把配置文件在主插件?和hibernate一樣嗎?我的意思是應該hibernate.cfg.xml也在主插件?因爲它對我來說沒有意義,所以我得到了一個持久性插件,但是配置文件必須位於使用持久性插件的主插件中。但是,謝謝你的提示,我會在星期一嘗試它,當我回來工作時... – 2011-05-21 10:11:25

+0

正常的工作流程是爲您要使用的庫創建一個插件。這個插件的唯一目的是使這個API成爲可用,你在這裏不包含任何特定於應用程序的代碼。這個庫插件可以在其他項目中重用。然後你的主插件使用庫。你可以看到這個庫插件是簡單的jar文件......你不會把配置文件放在庫jar裏面,是嗎? – Arne 2011-05-21 17:21:09

+0

那麼......但問題是,如果我想在第三個插件中使用日誌記錄,我需要第二個logback.xml,等等......我無法想象這是解決這個問題的正確方法...... – 2011-05-22 14:42:55