我正在尝试通过1.x =>将一些遗留代码迁移到log4j 2.6。 2.x桥罐。
在旧代码中,我有一个扩展org.apache.log4j.Logger的类。将2.6核心/ api jar以及bridge api jar添加到我的类路径时,由于类强制转换异常,我有一个单元测试失败:
java.lang.ClassCastException: org.apache.log4j.Logger cannot be cast to com.example.MyLogger
和MyLogger的类签名是
package com.example;
import org.apache.log4j.Logger;
public class MyLogger extends Logger {
}
它只适用于log4j 1.2,并且旧类(org.apache.log4j.Logger)位于桥接jar中,并且由于MyLogger是一个Logger,你可以预期它仍然有用。
关于为什么这不起作用的任何想法?
答案 0 :(得分:0)
这是在运行时发生的,因为代码正在操作不是MyLogger实例的Logger对象。我首先检查我是否只在代码中构建MyLogger实例。调试器在此处有所帮助,avoiding the use of printStackTrace也是如此。