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中直接获取到了。

        

  • 相关阅读:
    计算机网络
    AJAX
    数组---构建乘积数组
    数组----数组中的重复数字
    字符串---替换空格
    摘要评注The Cathedral & The Bazaar
    BlackJack Strategy
    招聘真题集合
    IIS+PHP+Mysql 返回500,服务器内部资源问题
    熄灯问题(枚举、位运算)
  • 原文地址:https://www.cnblogs.com/luyi/p/3681950.html
Copyright © 2011-2022 走看看