2012-10-25 69 views
1

以下是我想要做的: - 能夠爲每個不同的部署「戰爭」分隔log4j.properties - 能夠在ant build中定義,或web.xml,使用系統參數來使用日誌屬性。如何在web.xml中使用Jetty服務器定義多個log4j配置

我的項目設置是Jetty,使用Jersey作爲REST API,沒有Spring。

我已經做了一些研究,結果發現有其他的Spring解決方案可以在webl.xml中設置,但我沒有使用spring。 我也知道Jetty正在使用slf4j,但如果切換到slf4j,我能否更容易地做到這一點?

什麼是解決這個問題的最好方法,以便在web.xml或ant build中,log4j config可以自定義定義?

非常感謝!

編輯: 我想我可以啓動另一個servlet與一些init-param定義。然後在分離的HttpServlet實現上設置PropertyConfigurator.configure([log4j config的名稱]); 這是否再添加一個servlet是處理此問題的理想方式?

回答

0

很多不同的方法來處理這個問題。

由於你的任務是不同的日誌每個Servlet或每個Webapp ...我不會解決在servlet或webapp位置的問題,但在服務器級別。對於我而言,您希望將所有這些信息記錄到正確的位置,而不僅僅是在部署了servlet後的所有信息。爲此,我將在碼頭中啓用slf4j-api支持,然後研究從slf4j方面處理這個問題的最佳方法。有了這個,你可以使用任何你想要的日誌框架,slf4j-simple,log4j或logback..whatever你喜歡。

另外,如果你真的想避免記錄的服務器端,我想你可以在資源目錄中使用log4j.properties文件,然後在命令行上啓動jetty服務出不同的資源目錄。弄清楚你想要什麼選項,並啓動:

Java的罐子start.jar OPTIONS =服務器,JMX,JSP,資源 - [開發,QA,PROD]

歡呼

相關問題