log4j:错误A" org.apache.log4j.ConsoleAppender"对象不能分配给" org.apache.log4j.Appender"变量

时间:2014-01-13 11:58:00

标签: java exception logging log4j gradle

我正在使用gradle创建一个Web应用程序。我在这个应用程序中使用了log4j。当我构建项目时,我收到错误......

  • log4j:错误“org.apache.log4j.ConsoleAppender”对象不能分配给“org.apache.log4j.Appender”变量。
  • log4j:ERROR
  • 加载了“org.apache.log4j.Appender”类
  • log4j:ERROR [org.powermock.core.classloader.MockClassLoader@16a40b2],而类型对象
  • log4j:ERROR“org.apache.log4j.ConsoleAppender”由[sun.misc.Launcher$AppClassLoader@5e3a78ad]加载。
  • log4j:错误无法实例化名为“stdout”的追加程序。

我仍然没有找到一个好的答案。而且我忘了说,我的项目正确构建并正确显示日志按摩。它不仅适用于测试类。

3 个答案:

答案 0 :(得分:11)

添加此注释对我有用。

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

答案 1 :(得分:4)

您的类路径包含2个log4j库副本。排除一个并重试。

答案 2 :(得分:3)

答案清晰here。 :d

当我们的类中有最终方法和slf4j记录器时。我们必须在测试类中使用powermock。因此,我们必须在我们使用Powermock的测试类中使用@MockPolicy(Slf4jMockPolicy.class)和特定的导入。