2014-07-24 78 views
0

我从log4j2 2.0-beta9升级到2.0,均为log4j-corelog4j-apiLog4j2抛出NoSuchMethodError

我的应用程序使用前运行正常,现在我发现了以下错误:

Caused by: java.lang.NoSuchMethodError: org.apache.logging.log4j.core.Logger.log(Lorg/apache/logging/log4j/Marker;Ljava/lang/String;Lorg/apache/logging/log4j/Level;Lorg/apache/logging/log4j/message/Message;Ljava/lang/Throwable;)V 
    at org.apache.log4j.Category.forcedLog(Category.java:336) 
    at org.apache.log4j.Category.log(Category.java:423) 
    at com.mchange.v2.log.log4j.Log4jMLog$Log4jMLogger.log(Log4jMLog.java:171) 
    at com.mchange.v2.log.log4j.Log4jMLog$Log4jMLogger.log(Log4jMLog.java:183) 
    at com.mchange.v2.cfg.MConfig.dumpToLogger(MConfig.java:101) 
    at com.mchange.v2.cfg.MConfig.dumpToLogger(MConfig.java:98) 
    at com.mchange.v2.cfg.MConfig$CSManager.recreateFromKey(MConfig.java:154) 
    at com.mchange.v1.cachedstore.NoCleanupCachedStore.find(NoCleanupCachedStore.java:63) 

什么可能是错在这里?为什么log4j失败?

也许我必须从c3p0重定向日志记录?以下语句如何写入log4j2?

com.mchange.v2.log.MLog=com.mchange.v2.log.log4j.Log4jMLog 

我发现下面的语句将防止C3P0记录,因此是我目前的解决方法:

System.setProperty("com.mchange.v2.log.MLog", "com.mchange.v2.log.FallbackMLog"); 

但我想有记录重定向到log4j2,所以还在寻找一个解决方案。

+0

你重新编译了你的应用程序吗? –

+0

是的,我当然了,看看我上面的更新。 – membersound

回答

0

更新:在写这篇文章时,最新版本是Log4j 2.6.2。这是无垃圾的,所以如果你仍然使用旧版本,请升级。

关于错误:您是否还记得将适配器模块(log4j-1.2-api-2.0-beta9.jar)从beta9升级到2.0?

0

是的测试版有这个问题。升级到2.X

相关问题