getLog(getClass()) 与 getLog(XXX.class) 的区别
Posted cag2050
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了getLog(getClass()) 与 getLog(XXX.class) 的区别相关的知识,希望对你有一定的参考价值。
在实例方法中引用Log,通常定义一个实例变量:
// 在实例方法中引用Log:
public class Person
protected final Log log = LogFactory.getLog(this.getClass());
void foo()
log.info("foo");
注意到实例变量log的获取方式是LogFactory.getLog(this.getClass()),虽然也可以用LogFactory.getLog(Person.class),但是前一种方式有个非常大的好处,就是子类可以直接使用该log实例。例如:
// 在子类中使用父类实例化的log:
public class Student extends Person
void bar()
log.info("bar");
由于Java类的动态特性,子类获取的log字段实际上相当于LogFactory.getLog(Student.class),但却是从父类继承而来,并且无需改动代码。
出处:https://www.liaoxuefeng.com/wiki/1252599548343744/1264738932870688
以上是关于getLog(getClass()) 与 getLog(XXX.class) 的区别的主要内容,如果未能解决你的问题,请参考以下文章