2012-09-30 49 views
0

這是一個後續行動(我的Third-party dependencies to an OSGi application的某種方式),其中建議某些庫例如log4j是作爲捆綁已經可用
在Eclipse靛藍我找不到可供Import Package一個log4j的包是我安裝的一部分,所以我創建了一個Plugin Project from JAR archive捆綁log4j的,也是一個Feature Project捆紮log4j.xml配置以下這post在Eclipse 4(RCP/SWT/OSGi)應用程序中包含log4j的正確方法

說實話,我不明白爲什麼需要片段項目,但這個過程的作品。
所以我現在的問題是:
由於log4j.xml作爲功能jar的一部分交付出口,它需要一些「努力」讓別人找到它並更新調試級別,所以我想知道這是真的正確的過程?
我記住最終的出口產品會在一個易於查找的位置提供log4j配置,但現在(儘管記錄工作),我擔心我是否確實是正確的。

這裏有什麼幫助嗎?

回答

1

我建議看看Pax-Logging這會給你所有種類的日誌框架在OSGi環境中使用。而且您可以使用外部配置文件(不需要擴展器)來配置日誌記錄。

1

該片段是擴展log4j捆綁包類路徑以包含所需配置文件的一個選項。這可能是配置應用程序範圍屬性的最簡單方法。

這並不意味着在部署之後進行修改,因爲它將被嵌入到jar文件中。如果您希望在部署後進行配置,則必須採用其他方法。

注意: 恐怕你誤解了關於已經作爲捆綁包提供的罐子的答案。這並不意味着它們是您選擇的OSGi平臺(Indigo)的一部分,只是它們已準備好按原樣部署到OSGi平臺。您創建插件項目是不必要的,您只需將該jar添加到目標平臺即可解決缺少的導入問題。

+0

1)但是使用'log4j'不是很自然的想到'log4j.xml'會在部署後更新嗎?有什麼不同的方法?通常做什麼用於日誌記錄?2)我讀到它是由於我可能在部署中遇到問題,因此使用目標平臺的做法很糟糕。我錯了嗎? – Cratylus

2

如果你真的需要公開的文件,你可以把它放在任何你想要的,然後確保你的程序調用這些方法在啓動一個:

  • org.apache.log4j.xml.DOMConfigurator 。 configure(字符串文件名)
  • org.apache.log4j.PropertyConfigurator。 configure(字符串 configFilename)

也可以使用「到configureAndWatch」 -variants如果你想更改的配置而無需重新啓動應用程序。

編輯:我寫「如果你真的需要」,因爲我經歷過,我從來沒有需要在部署後打開調試日誌記錄,因爲它總是開啓!對於那些對響應時間和吞吐量有正常要求(但不是極端)的應用程序,這是可以的。記錄到UDP-appender速度很快(並且不會填滿磁盤)。或者使用滾動文件appender是相當安全的,足夠快,供我使用。在確定難以複製的錯誤時,始終擁有可用的調試日誌是一種生命保護程序。

+0

我會試試這個,但爲什麼你要說「如果你真的需要......」?log4j中的想法是,最終用戶可以在需要時打開/關閉調試。不知道你的意思。 – Cratylus

+0

我已經通過澄清更新了我的答案,謝謝你指出,Cratylus。 :-) –

+0

始終調試?取決於應用程序和正在執行多少日誌記錄 – Cratylus

相關問題