2010-09-11 72 views
1

我得到在Spring應用程序的異常對我的第一行代碼:春:「SimpleLogger似乎並沒有被位置感知」異常

ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); 

我共享記錄-1.1.1。 jar配置爲項目庫。

這裏是堆棧跟蹤:

java.lang.UnsupportedOperationException:記錄器[org.slf4j.impl.SimpleLogger(org.springframework.context.support.ClassPathXmlApplicationContext)]似乎沒有被位置感知。

在org.apache.log4j.Category.log(Category.java:347) 在org.apache.commons.logging.impl.Log4JLogger.info(Log4JLogger.java:199) 在org.springframework.context (AbstractApplicationContext.java:456) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:394) at org.springframework.context.support.ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext.java: 139) at org.springframework.context.support.ClassPathXmlApplicationContext。(ClassPathXmlApplicationContext.java:83)

回答

0

看起來像你是usin g的多個日誌記錄框架。這個錯誤似乎是SLF4J和Log4J配置之間衝突的一個症狀。

看看這篇文章:
http://www.qos.ch/pipermail/slf4j-user/2010-February/000892.html
其中規定,

代碼日誌(字符串FQCN,優先級P, 對象味精的Throwable t)的方法拋出 因爲呼叫者異常 預計位置感知記錄,但 實際記錄器實施不是 能夠提供「位置 意識」。

沒有更多的信息,我最好的猜測是,你通過指向非業務執行記錄儀有一個SLF4J罐子像SLF4J-NOP-1.6.1.jar或別的東西那是關閉記錄參考類。

找到罪魁禍首並刪除它(或用slf4j-log4j版本替換它)。

您使用的是Maven嗎?

如果是這樣,請打開您的pom文件的依賴關係圖,並以slf4j爲名查找所有依賴關係。刪除看起來像NOOP罐子的那個。

+0

這是一個Spring/Hibernate項目,不知何故,我在項目中包含了版本化和未版本化的slf4j-simple.jar,作爲Hibernate配置的一部分。我刪除了slf4j-simple.jar,並將slf4j-simple-1.4.2.jar與我正在使用的Hibernate發行版的一部分slf4j-simple-api-1.4.2.jar匹配。一切都很好。 – 2010-09-12 20:59:49

+0

很高興你整理出來。我認爲,我喜歡SLF4J背後的理論,但在實踐中,它似乎導致了很多這樣的問題。 – gMale 2010-09-12 21:34:30

+0

當你使用的框架對日誌記錄系統有依賴性,然後你會在這些框架中咆哮時,真正的痛苦是什麼。 BLECH。 – 2010-09-13 06:27:25