爲了詳細說明,我有一個運行Java 1.6.0_27的Tomcat服務器版本7.0.27。tomcat,2個webapps,2個log4js,但兩個應用都登錄到一個文件
我有兩場戰爭,每次都有自己的log4j jar,也使用slf4j和slf4j-log4j。每場戰爭都有自己的配置文件(log4j.xml)。
war 1應該使用文件log-1.log,war 2應該使用文件log-2.log,但兩者都要登錄到log-1.log。
我檢查了tomcat安裝中沒有其他log4j jar,所以我不確定問題出在哪裏。我也關閉了共享類加載,但沒有任何區別。我的下一步是打開詳細的類加載器日誌記錄和/或開始調試log4j,但也許這裏有人知道這是爲什麼,並可以節省我一些時間。感謝您的任何意見。
更新:
好吧,我想我得到了這一個。 log4j xml文件很好。做了一個詳細的:類後,我可以看到log4j.jar只能從Web應用程序中加載一次。
我正在使用Documentum。他們有一個運行時jar需要使用他們的庫,這是一個帶清單文件的空jar。清單指向一堆罐子。換句話說,他們不使用maven ...無論如何...其中一個jar恰好是在Documentum安裝中找到的logj4。所以看起來兩個webapps都在使用那個。我認爲這是問題。待確認...
您可以請將配置發佈到您的logf4.xml文件中嗎?你需要設置多個appender。 – 2012-08-08 09:59:33
如果您將Documentum的運行時jar放置在頂級類路徑中,並且該運行時jar引用了log4j.jar,那麼它只會加載一次。不過,您不必使用該運行時jar。都是您的.war文件Documentum應用程序? – davidfmatheson 2012-08-08 13:08:35
其實只有一個人使用Documentum。在生產中,這是在兩個獨立的服務器上,儘管在我們的開發環境中它是一樣的。但是我已經做到這樣,只有使用Documentum的人才能獲得Documentum jar,並確實解決了問題。 – rozner 2012-08-08 13:36:42