Logger.getLogger(*.class)源码分析

//补偿:http://blog.csdn.net/anlina_1984/article/details/5313023//方法
protected static Logger logger = Logger.getLogger(PropertiesConfigLocalLoader.class);

//进去这个
package org.apache.log4j;
public class Logger extends Category {

//只列出这个静态方法
static
public
Logger getLogger(Class clazz) {
return LogManager.getLogger(clazz.getName());
}

}

//进去这个
public class LogManager {
  //又只列出这一个静态方法
  public
  static
  Logger getLogger(Class clazz) {
     // Delegate the actual manufacturing of the logger to the logger repository.
    return repositorySelector.getLoggerRepository().getLogger(clazz.getName());
  }

}

//进去这个
//卧槽一个接口,内容只有这么多
package org.apache.log4j.spi;
public interface RepositorySelector {

  /**
     Returns a {@link LoggerRepository} depending on the
     context. Implementors must make sure that a valid (non-null)
     LoggerRepository is returned.
  */
  public
  LoggerRepository getLoggerRepository();
}

//进去这个
//卧槽,又是接口
package org.apache.log4j.spi;
public interface LoggerRepository {

//就这样完结了
  public
  Logger getLogger(String name);

}
//然后呢?不明白

  

时间: 2024-07-30 13:49:04

Logger.getLogger(*.class)源码分析的相关文章

【Zookeeper】源码分析之持久化--FileTxnSnapLog

一.前言 前面分析了FileSnap,接着继续分析FileTxnSnapLog源码,其封装了TxnLog和SnapShot,其在持久化过程中是一个帮助类. 二.FileTxnSnapLog源码分析 2.1 类的属性 public class FileTxnSnapLog { //the direcotry containing the //the transaction logs // 日志文件目录 private final File dataDir; //the directory cont

【Zookeeper】源码分析之服务器(二)

一.前言 前面阐述了服务器的总体框架,下面来分析服务器的所有父类ZooKeeperServer. 二.ZooKeeperServer源码分析 2.1 类的继承关系 public class ZooKeeperServer implements SessionExpirer, ServerStats.Provider {} 说明:ZooKeeperServer是ZooKeeper中所有服务器的父类,其实现了Session.Expirer和ServerStats.Provider接口,Session

【Zookeeper】源码分析之服务器(四)之FollowerZooKeeperServer

一.前言 前面分析了LeaderZooKeeperServer,接着分析FollowerZooKeeperServer. 二.FollowerZooKeeperServer源码分析 2.1 类的继承关系 public class FollowerZooKeeperServer extends LearnerZooKeeperServer {} 说明:其继承LearnerZooKeeperServer抽象类,角色为Follower.其请求处理链为FollowerRequestProcessor -

【Zookeeper】源码分析之持久化--FileSnap

一.前言 前篇博文已经分析了FileTxnLog的源码,现在接着分析持久化中的FileSnap,其主要提供了快照相应的接口. 二.SnapShot源码分析 SnapShot是FileTxnLog的父类,接口类型,其方法如下 public interface SnapShot { /** * deserialize a data tree from the last valid snapshot and * return the last zxid that was deserialized *

JStorm与Storm源码分析(七)--BasicBoltExecutor与装饰模式

在Storm中IBasicBolt的主要作用是为用户提供一种更为简单的Bolt编写方式,更为简单体现在Storm框架本身帮你处理了所发出消息的Ack.Fail和Anchor操作,而这部分操作是由执行器BasicBoltExecutor 实现的. 下面我们看一下BasicBoltExecutor的源码: /** * BasicBoltExecutor实现了IRichBolt接口 * 在该类中持有一个IBasicBolt成员变量用于调用转发 * 说明: * 该类是基于装饰模式实现的. */ publ

Mahout源码分析:并行化FP-Growth算法

FP-Growth是一种常被用来进行关联分析,挖掘频繁项的算法.与Aprior算法相比,FP-Growth算法采用前缀树的形式来表征数据,减少了扫描事务数据库的次数,通过递归地生成条件FP-tree来挖掘频繁项.参考资料[1]详细分析了这一过程.事实上,面对大数据量时,FP-Growth算法生成的FP-tree非常大,无法放入内存,挖掘到的频繁项也可能有指数多个.本文将分析如何并行化FP-Growth算法以及Mahout中并行化FP-Growth算法的源码. 1. 并行化FP-Growth 并行

Quartz任务调度源码分析

从源码分析中可以看出,任务的整个调度过程为,初始化线程池,及调度器QuartzScheduler,然后由线程池去执行QuartzSchedulerThread,将触发器任务(job与触发器)添加到存储器(TreeSet,timeTrriger)中,然后启动调度器,QuartzSchedulerThread从timeTrriger去除待触发的任务,并包装成TriggerFiredBundle,然后由JobRunShellFactory 创建TriggerFiredBundle的执行线程JobRun

structs2源码分析

一.到网上下载struts2的源代码: http://mirrors.cnnic.cn/apache//struts/source/struts-2.3.16.3-src.zip 我把项目的源码路径定向到下载到的源代码: 这份是webwork的核心源码,读取配置文件的核心代码就在于此: 二.下面是struts本尊,基本实现的就是请求的分发: 二.从项目本身去做分析: 好多大牛大师傅都不断强调,去看源码分析源码,但是却从来很少人,告诉你怎么去看,经过多年的摸索我总算找到一个分析源代码的套路,特别对

zuul源码分析-探究原生zuul的工作原理

前提 最近在项目中使用了SpringCloud,基于zuul搭建了一个提供加解密.鉴权等功能的网关服务.鉴于之前没怎么使用过Zuul,于是顺便仔细阅读了它的源码.实际上,zuul原来提供的功能是很单一的:通过一个统一的Servlet入口(ZuulServlet,或者Filter入口,使用ZuulServletFilter)拦截所有的请求,然后通过内建的com.netflix.zuul.IZuulFilter链对请求做拦截和过滤处理.ZuulFilter和javax.servlet.Filter的