2014-03-31 156 views
0

我們使用log4j進行應用程序日誌記錄,並使用maven進行應用程序打包。 由於我們有3-4個應用程序作爲EAR的一部分進行部署,因此EAR的大小很大。 我們正在嘗試與'瘦瘦的戰爭'的方法,但面臨與log4j的問題。我們過去使用不同的文件爲每個應用程序記錄應用程序日誌,但是使用Skinny WAR作爲log4j的類只被加載一次,只創建一個日誌文件並且每個應用程序的日誌被追加到同一個日誌文件。瘦戰爭和log4j

我們想到了在每個WAR中打包log4j.jar的着名解決方案,但是之後我們必須移動WAR中需要log4j的每個jar文件。彈簧罐的這基本上會增加EAR尺寸。

有沒有其他解決方案來解決這個問題? 任何建議將是一個很大的幫助。

謝謝。

回答

0

看看log4j的1.3/log4j2幫助您解決在init - 谷歌ContextJNDISelector

http://logging.apache.org/log4j/2.x/manual/webapp.html

比較

的logback - JoranConfigurator它正是這麼做的,定製的基於上下文的配置

http://logback.qos.ch/manual/configuration.html

+0

我們不能使用上述版本的log4j,因爲我們已經集成的少數應用程序依賴於舊版本的lib。,謝謝! – user765635

+0

如果你在加載log4j的時候,基本上只有一個類加載器加載log4j類,如果它在類路徑中發現log4j.xml,它只會啓動一次,如果你不喜歡,你可以多次啓動它 - configureandwatch api想到,也見http://www.certpal.com/blogs/2010/05/how-to-configure-log4j-for-a-web-app/ - 挑戰將是保持appenders和處理程序分開內存用於不同的戰爭,如果你在不同的網絡應用中使用相同的類(比如某種框架),可能必須以獨特的方式創建類別,而不僅僅是包和類 –