Log4j: ОШИБКА Объект "org.apache.log4j.ConsoleAppender" не присваивается переменной "org.apache.log4j.Appender"

Я делаю веб-приложение с помощью gradle. Я использовал log4j в этом приложении. Когда я создаю проект, я получаю ошибку...

  • log4j: ОШИБКА Объект "org.apache.log4j.ConsoleAppender" не присваивается переменной "org.apache.log4j.Appender".
  • log4j: ОШИБКА Класс "org.apache.log4j.Appender" был загружен
  • log4j: ERROR [[email protected]], тогда как объект типа
  • log4j: ERROR "org.apache.log4j.ConsoleAppender" загружен [[email protected]].
  • log4j: ERROR Не удалось создать экземпляр с именем "stdout".

Я до сих пор не нашел хорошего ответа. И я забыл сказать, что мой проект правильно построен и правильно показывает журналы. Он работает не только на тестовых классах.

Ответ 1

Добавление этой аннотации работает для меня.

@PowerMockIgnore("org.apache.log4j.*") 

Ответ 2

Ваш путь к классу содержит 2 копии библиотеки log4j. Исключите один и повторите попытку.

Ответ 3

Существует четкий ответ здесь.: D

Когда у нас есть конечный метод и slf4j loggers в наших классах. Мы должны использовать powermock в нашем тестовом классе. Из-за этого мы должны использовать @MockPolicy (Slf4jMockPolicy.class) с импортом частиц в классе тестирования, который мы использовали Powermock.