Closed RongNanNan closed 6 years ago
请问这是在那种情况下遇到的问题呢? 目前我们推荐的是ark plugin 和 ark biz是各自带有自身的日志实现
自己的demo(spring boot项目)使用自己打的一个插件包里的导出类去创建一个bean,并执行init方法,里面有使用log4j(log4j log4j-1.2.17),加载jar里的log4j配置文件,debug看到代码里使用org.apache.log4j.helpers.loadClass去加载配置文件里的类,里面默认使用Thread.currentThread().getContextClassLoader() 进行加载,debug看到返回的是BizClassLoder
感谢反馈~ 在plugin还是在biz逻辑代码时,都是需要设置对应的线程上下文,对于我们官方的插件,如sofarpc,我们都会手动切换。目前在pluginclassloader触发loadclass时,不会主动切换tccl,我们会调研考虑有没有这个必要,是我们主动切还是留个插件开发者,后续进展会在这个issue更新。
en,建议在文档里添加说明
嗯,好。感谢反馈
我把这个issue关了,请关注 https://github.com/alipay/sofa-ark/issues/57
Thread.currentThread().getContextClassLoader() 该类加载器,与当前加载器不一致 解决方案:设置参数("log4j.ignoreTCL", "true"); 或者 主动设置改线程上下文类加载期为插件类加载器