使用log4j的多个库

时间:2010-05-27 18:47:32

标签: java log4j twitter4j

我正在编写一个小型Java应用程序并且遇到一些log4j问题,这似乎是由多个独立的库同时尝试使用它们造成的:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.log4j.Logger.info(Ljava/lang/String;)V
    at twitter4j.internal.logging.Log4JLogger.info(Log4JLogger.java:85)
    at twitter4j.internal.logging.Logger.<clinit>(Logger.java:72)
    at twitter4j.http.BasicAuthorization.<clinit>(BasicAuthorization.java:43)
    at twitter4j.http.AuthorizationFactory.getBasicAuthorizationInstance(AuthorizationFactory.java:66)
    at twitter4j.TwitterStreamFactory.getInstance(TwitterStreamFactory.java:121)
    at org.voltdb.twitter.drivers.Collect.main(Collect.java:13)

我使用的两个库是Twitter4JVoltDB。两者都是JAR的形式。如果我单独使用,我不会遇到这个问题;两者都可以自己工作。

如果解决了这个问题,可以禁用任一库的log4j组件。

2 个答案:

答案 0 :(得分:2)

您确定您正在使用两个库所需的正确版本的log4j吗?您的错误消息似乎表明log4j版本IMO不正确。

答案 1 :(得分:0)

我遇到了reply to a Twitter4J logging problem that shows how to disable logging

-Dtwitter4j.loggerFactory=twitter4j.internal.logging.StdOutLoggerFactory

添加此属性会使异常消失。