Несколько библиотек, использующих log4j - PullRequest
2 голосов
/ 27 мая 2010

Я пишу небольшое приложение на 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)

Две библиотеки, которые я использую: Twitter4J и VoltDB . Оба в форме банок. Если я использую любой из них в изоляции, я не столкнусь с этой проблемой; оба прекрасно работают самостоятельно.

Было бы приемлемо отключить компонент log4j любой библиотеки, если это решит проблему.

Ответы [ 2 ]

2 голосов
/ 27 мая 2010

Вы уверены, что используете правильную версию log4j, как того требуют обе библиотеки? Ваше сообщение об ошибке указывает на неправильную версию log4j IMO.

0 голосов
/ 28 мая 2010

Я столкнулся с ответом на проблему регистрации в Twitter4J, которая показывает, как отключить ведение журнала :

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

При добавлении этого свойства исключение исчезло.

...