使用自定义类加载器配置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