在(log4j)类的声明中,声明一个logger:
然后,再用这个logger来打印信息。
这种方法在类比较少的情况下,非常好用。
不过在类大量增加时,这种方法并不是一个好的方法,它使工程看上去臃肿不堪,于是必须采用一种简洁的方法来替换它。
首先,定义一个父类,让logger作为其的一个成员变量,类型可以为protected或default;
其次在父类的构造函数里初始化该logger:
使用这种方法,其子类就可以直接引用父类中定义的logger来记录信息。
此外,使用getclass().getname(),可以成功将logger命名为子类的名称,同样能够丰富调试信息,帮助定位问题所在。
代码:
//父类
public abstract class parent {
protected logger logger =null ;
public parent(){
logger=logger.getlogger(getclass().getname());
}
}
//子类
public class son extends parent {
public void test(){
logger.info("successful!");
}
public static void main(string[] args) {
(new son()).test();
}
}