zoukankan      html  css  js  c++  java
  • commons-logging 结合 log4j, 初始化生命周期 初探

    -------commons-logging----------

    Log log=LogFactory.getLog(clazz);

        LogFactory这是个抽象日志工厂,更像个工具? 通过线程上下文,找jvm属性是否指定工厂-》配置文件是否有-》meta-inf/service是否有[ 有个默认的 impl.LogFactoryImpl].   它再来discover找LogImpl(具体的日志实现),还是通过jvm属性是否指定-》配置文件是否有;否则default [log4jlogger,..]顺序。假设指定了是impl.log4jlogger。

    -----------   log4jLogger-(broker) -----------------

             log4jLogger类被加载,并实例化,getLogger()-->实际上org.apache.log4j.Logger.getlogger(xx).

    ----------log4j---------------

    而logger需要委托LogManager.

                    先加载类LogManager,静态初始化DomConfigurator,它来找到(  jvm属性,classpath )log4j.xml的uri,和默认的resposity为参数,进行configure。

                   configure借助dombuilderFactory.来解析log4jEntity. 并把解析的logger对象结果,存在resposity的hashtable中。

             继续委托,logmanager,getlogger(xx), 本次及以后的getLogger,就直接在loggerResposity中直接获取到了。

        

  • 相关阅读:
    关于在Linux下的换行符 和windows下的换行符
    Linux文件操作标准接口
    tcpdump抓包和wireshark解包
    Makefile学习(1)
    域名服务器设置
    Linux系统移植(1)
    SQL基本语句整理
    ARM---搭建开发板的开发环境(x210v3s)
    C语言基础
    Oracle中的USEREVN()
  • 原文地址:https://www.cnblogs.com/luyi/p/3681950.html
Copyright © 2011-2022 走看看