2014-01-08 30 views
0

我開發了使用JSF的小型Web應用程序,並添加了log4j來處理日誌記錄。一切工作完美,直到我實現在我的Web應用程序中添加Web服務。在使用Apache CXF實現webservice後,我沒有在日誌文件中獲取任何日誌,但可以在eclipse控制檯中獲取日誌。我不知道爲什麼,它的行爲如此?我的日誌文件只顯示消息,如enter image description here
我使用jdk1.5,log4j 1.2.15和CXF 2.6.11。我也嘗試了一些來自Apache的解決方案,以使用log4j而不是cxf默認記錄器。請參閱http://cxf.apache.org/docs/debugging-and-logging.html#DebuggingandLogging-LoggingMessagesenter image description here添加apache CXF後,爲什麼log4J不工作?

但推薦的解決方案不適合我。我該如何解決這個問題?

+0

你使用slf4j嗎? – Arash

+0

是的,我已經使用slf4j –

回答

1

CXF引入另一個日誌機制可能意味着添加了另一個日誌記錄機制,或者導入的slf4j/log4j版本不兼容。 我建議您檢查CXF pom文件,並排除所有log4j/slf4j jar文件。

+0

是的,你的觀點是正確的。現在你的解決方案正在爲我工​​作。非常感謝 –

0

正如@Arash所說的,從類路徑中移除log4j(如果存在)。另外,將文件META-INF/cxf/org.apache.cxf.Logger用下面的內容添加到類路徑:

org.apache.cxf.common.logging.Slf4jLogger 

參考:Using SLF4J Instead of java.util.logging

+0

是的,我被嘗試過,但它不適合我 –

+0

很高興你得到它的工作。 –

+0

是@unhillbilly,非常感謝 –

0

問題是由CXF去除SLF4J-jdk14.jar解決。其實問題是「類路徑包含多個SLF4J綁定」。所以我刪除了CXF log4j綁定。現在它工作完美。感謝所有。