Log4j使用技巧——让子类使用父类中定义的Logger

简介:
关于Log4j,是一个很庞大的话题,在这里,我不能对其特点和使用方法进行一一描述,只想记录自己在使用Log4j开发项目的过程中遇到的一些问题和自己的解决方案。

  在项目中,有时候会遇到这么一种情况,我们需要记录一些类的使用情况,在类的声明中,我们会如此声明一个logger:
  private static final Logger logger=Logger.getLogger(MyClass.class);
  然后再用这个logger来打印我们关心的信息。这种方法一直都很不错在我们的类比较少的情况下。不过在类大量增加时,我们发现这种方法并不是一个好的方法,它使我们的工程看上去臃肿不堪,于是,我们必须采用一种简洁的方法来替换它,确保其能够让我们的程序看起来舒服一些。

  首先定义一个父类,让logger作为其的一个成员变量,类型可以为protected或default;其次在父类的构造函数里初始化该logger:
  logger=Logger.getLogger(getClass().getName());
  使用这种方法,其子类就可以直接引用父类中定义的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();     
  }   

}






  本文转自 cuiyingfeng 51CTO博客,原文链接:http://blog.51cto.com/cuiyingfeng/6625,如需转载请自行联系原作者

相关文章
|
Java
log4j:WARN No appenders could be found for logger (org.apache.zookeeper.ZooKeeper). log4j:WARN Pleas
log4j:WARN No appenders could be found for logger (org.apache.zookeeper.ZooKeeper). log4j:WARN Pleas
229 0
|
Java 开发框架 Maven
"No appenders found for logger" and "Please configure log4j properly"
Why do I see a warning about "No appenders found for logger" and "Please configure log4j properly"?This occurs when the default configuration files log4j.
1154 0
|
4月前
|
Java Spring
spring boot 配置log4j 日志
spring boot 配置log4j 日志
71 0
|
3月前
|
Java Spring
【Spring Boot】logback和log4j日志异常处理
【1月更文挑战第25天】【Spring Boot】logback和log4j日志异常处理
|
5月前
|
XML JSON Java
最牛逼 Java 日志框架—Log4j2,性能无敌,横扫对手
Logback 算是JAVA 里一个老牌的日志框架,从06年开始第一个版本,迭代至今也十几年了。不过logback最近一个稳定版本还停留在 2017 年,好几年都没有更新;logback的兄弟 slf4j 最近一个稳定版也是2017年,有点凉凉的意思。
|
7月前
|
Java
log4j.properties日志配置文件内容
log4j.properties日志配置文件内容
43 0
|
3月前
|
SQL Java 数据库连接
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
【1月更文挑战第2天】 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
203 3
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
|
3天前
|
Java
log4j异常日志过滤规则配置
log4j异常日志过滤规则配置
13 0
|
29天前
|
监控 Java 测试技术
日志框架到底是Logback 还是 Log4j2
日志框架到底是Logback 还是 Log4j2
20 0