从log4j迁移到log4j2时发生java错误
我想从log4j迁移到log4j2。我有一个自定义记录器类MyLoggerImpl
,它从log4j扩展了Logger
,并实现了用户定义的界面
MyLoggerImpl。java(使用log4j)
import org.apache.log4j.Logger;
public class MyLoggerImpl extends Logger implements MyLoggerInterface
{
private Logger logger = null;
MyLoggerImpl(){};
MyLoggerImpl(Class clas){
logger = Logger.getLogger(clas);
}
}
我试着修改自定义类,如下所示。还有log4j2之类的配置文件。xml等已经就位
解决方案1
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class MyLoggerImpl extends LogManager implements MyLoggerInterface
{
private Logger logger = null;
MyLoggerImpl(){};
MyLoggerImpl(Class clas){
logger = LogManager.getLogger(clas);
}
}
解决方案2
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class MyLoggerImpl implements MyLoggerInterface
{
private Logger logger = null;
MyLoggerImpl(){};
MyLoggerImpl(Class clas){
logger = LogManager.getLogger(clas);
}
}
然而,我得到以下例外
Reason:java.lang.ClasCastException: com.custom.logger.MyLoggerImpl incompatible with org.apache.logging.log4j.Logger
我不明白这是什么原因。请帮忙
更新1
public interface MyLoggerInterface{
public void info(Object infoObject1);
public void info(Object infoObject1, Object infoObject2);
public void info(int scheduleId, Object infoObject1);
public void info(int scheduleId, Object infoObject1, Object infoObject2);
// similar variations for error and debug methods
}
共 (0) 个答案