log4j:ERROR A "org.jboss.logging.appender.FileAppender" object is not assignable to a "org.apache.log4j.Appender" variable.

一任天然發表於2009-01-07

jboss部署專案中遇到如下錯誤資訊:

  1. 09:12:54,062 ERROR [STDERR] log4j:ERROR A "org.jboss.logging.appender.FileAppender" object is not assignable to a "org.apache.log4j.Appender" variable.
  2. 09:12:54,062 ERROR [STDERR] log4j:ERROR The class "org.apache.log4j.Appender" was loaded by 
  3. 09:12:54,062 ERROR [STDERR] log4j:ERROR [WebappClassLoader
  4.   delegate: false
  5.   repositories:
  6.     /WEB-INF/classes/
  7. ----------> Parent Classloader:
  8. org.jboss.mx.loading.UnifiedClassLoader3@17c50b9{ url=file:/D:/jboss-4.2.3.GA/server/default/deploy/jboss-web.deployer/ ,addedOrder=6}
  9. ] whereas object of type 
  10. 09:12:54,062 ERROR [STDERR] log4j:ERROR "org.jboss.logging.appender.FileAppender" was loaded by [org.jboss.system.server.NoAnnotationURLClassLoader@1292d26].
  11. 09:12:54,062 ERROR [STDERR] log4j:ERROR Could not instantiate appender named "FILE".

從錯誤資訊中可知,原因是jboss的日誌jar包和專案中新增的日誌jar包衝突,解決方法很簡單,找到專案中的log4j.jar和commons-logging.jar刪除即可。

 

新問題出現:

以上處理方式發現另外一個問題,專案在console輸出的一些資訊丟失。需要找到更好的方式解決。

 

以上問題解決方法:

無需刪除專案中的log4j.jar和commons-logging.jar的方法,將jboss/lib中的jboss-common.jar包複製到專案的lib中即可。這樣就可以讓專案中的日誌和jboss中的日誌一起工作。

 

相關文章