log4j源码阅读

首先看下Logger类的直接关系图
在这里插入图片描述

其中顶级接口 AppenderAttachable 方法如下:
在这里插入图片描述
抽象父类Category属性方法如下:
在这里插入图片描述
在这里插入图片描述
Logger方法如下:
在这里插入图片描述
构造方法:会将name传递给父类的Name属性

Logger(String name) {
    super(name);
  }

方法(1):根据name调用LogManager静态方法,进一步从LoggerRepository获取指定name的Logger
static public Logger getLogger(String name) { return LogManager.getLogger(name); }
方法(2):根据目标Class获取Logger对象,下层方法采用该class.name调用与(1)相同方法获取。(static public 与public static 相同效果)

static
  public
  Logger getLogger(Class clazz) {
    return LogManager.getLogger(clazz.getName());
  }

方法:参数类名和Log工厂类,name用于查找是否已有对象,factory用于创建Logger对象,并将产生对象做相关处理

 public
  static
  Logger getLogger(String name, LoggerFactory factory) {
    return LogManager.getLogger(name, factory);
  }

方法:根据日志级别跟踪message

public void trace(Object message) {
      if (repository.isDisabled(Level.TRACE_INT)) {
        return;
      }

      if (Level.TRACE.isGreaterOrEqual(this.getEffectiveLevel())) {
        forcedLog(FQCN, Level.TRACE, message, null);
      }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值