使用自定义类加载器配置org.apache.log4j.ConsoleAppender

我有一个java类,它在启动时基于javassist类加载器创建一个自定义类加载器,然后运行真正的程序类。 我收到以下错误:

log4j:ERROR A "org.apache.log4j.ConsoleAppender" object is not assignable to a "org.apache.log4j.Appender" variable. log4j:ERROR The class "org.apache.log4j.Appender" was loaded by log4j:ERROR [javassist.Loader@6f97b10a] whereas object of type log4j:ERROR "org.apache.log4j.ConsoleAppender" was loaded by [java.net.URLClassLoader@5b414a8d]. log4j:ERROR Could not instantiate appender named "stdout". 

问题与以下事实有关:一个对象由原始类加载器创建,而另一个对象由自定义类加载器创建。
有没有办法解决这个错误?

提前致谢,
阿夫纳

请尝试设置-Dlog4j.ignoreTCL = true,希望它有所帮助。 关于log4j的类似问题

在maven tomcat插件配置中添加log4j.ignoreTCL ,如下所示

  org.apache.tomcat.maven tomcat7-maven-plugin 2.1  ${local.server.port} true  ${user.dir}\conf\log4j2.xml true org.apache.logging.log4j.jul.LogManager  true