`
tanghongjun1985
  • 浏览: 55193 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Log4J源码分析(四)

阅读更多
转载:http://jmut.bokee.com/

现在初始化进入到了最重要的阶段。我们先看看最常用的PropertyConfigurator,它从一个外部文件中读取配置。这个类最重要的方法当然是几个doConfigure方法。其中最复杂的是:

public
void doConfigure(Properties properties, LoggerRepository hierarchy)
它是接口Configurator中的方法。
1、由键log4j.debug设定内部debug信息是否输出;
2、由键log4j.thredsold设定全局level,它的value中可以使用变量,所以要进行变量替换,可以参见OptionConverter的
public
static
String findAndSubst(String key, Properties props)

public static
String substVars(String val, Properties props) throws
IllegalArgumentException
方法的说明。
3、由键log4j.rootLogger或log4j.rootCategory设置根配置。方法:
void parseCategory(Properties props, Logger logger, String optionKey,
String loggerName, String value)
处理设置语法:
log4j.rootLogger=[level], appenderName, appenderName, ...
root logger的level不能是inherited或null。方法:
Appender parseAppender(Properties props, String appenderName)
设置各个appender,它使用域
protected Hashtable registry = new Hashtable(11);
跟踪当前文件中的appender。在这个方法中使用了工具类PropertySetter。
4、由键log4j.loggerFactory配置LoggerFactory。同样使用了工具类PropertySetter。
5、由log4j.logger或log4j.category配置非根logger。
6、清空registry。
PropertySetter是一个重要的类,它通过JavaBean使用了reflection。它不设置appender的layout。
至此,初始化工作完成。整个初始化是围绕一个配置文件来做的,但中心是由这个文件得来的Properties对象,所以这个文件可以有多种形式,甚至可以是其它的载体,不必是文件,关键是能得到一个Properties对象。然后根据Properties对象中的信息生成、配置和组织logger。由于支持使用变量,所以在由key获取value时,要用到工具方法,实现变量的替换。现在生成和配置的问题已经解决,剩下的是logger的组织,它是在Hierarchy中解决的。

转载:http://jmut.bokee.com/
分享到:
评论

相关推荐

    Log4j2效率测试源码

    Log4j2效率测试源码

    log4j返序列化源码分析

    log4j返序列化源码分析

    log4j 介绍

    log4j 介绍 log4j 1.x 源码分析 logback log4j2介绍

    Log4j2异步写日志源码

    分三类文件,pom通过maven构建所需jar包,log4j2.xml配置文件,TestController.java测试类,使用debug测试效果较明显。

    log4j详解与实战

    深入的介绍log4j的各种使用方法,不容错过

    apache-log4j-2.4-src.zip源码

    apache-log4j-2.4-src.zip 源码加入,就可以看到log4j内部的源码了

    Struts2 日志原理及配置方法(结合Log4j)

    NULL 博文链接:https://adrain-work-163-com.iteye.com/blog/1545091

    log4c源代码

    log4c的源代码。log4c是用C语言编写的日志工具,借鉴了log4j的思想,可以自由配置日志的输出格式、输出文件等,是一个很方便的程序调试、运行追踪工具。还有一个C语言的日志工具是ZLog,与这个有些像。

    Struts-menu源码分析

    优秀而且实用的代码有很多,比如Junit,比如Jive,比如petStore,甚至是tomcat的Example、Log4j的Example。 一段广告完毕,下面就为大家分析一下struts-menu的源码,作为送给大家的圣诞礼物吧。Struts-Menu也来自一...

    slf4j使用和源码分析

    slf4j使用 SLF4J 是为各种 loging APIs 提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的...也可以通过 SLF4J 提供的 API 实现来开发相应的适配器如 Log4jLoggerAdapter、JDK14LoggerAdapter。

    java版ss源码-ErRabbit:使用Log4j的远程日志控制台服务器。可视化异常堆栈跟踪日志视图

    Log4j、slf4j(by Plinio Freire) 和 ActiveMQ 收集将使其与其他程序轻松兼容。 介绍幻灯片 有什么区别。 RrRabbit 旨在可视化错误日志 易于集成到现有的 Java 应用程序上。 한국어 설명은 에 있습니다。 结构 Web ...

    spring mvc项目

    spring mvc maven项目,导入IDEA后无报错,需要在IDEA中...该项目使用servlet3.0规范,无web.xml,无spring.xml等配置文件,所有的配置均通过Java Config、注解搞定,项目中还集成了log4j2技术,以及前端html文件等。

    java8集合源码分析-spider-tangpoem:优雅的使用轻量级爬虫框架WebMagic

    java8 集合源码分析 spider-tangpoem项目 优雅的使用WebMagic框架,爬取唐诗别苑网的诗人诗歌数据 ...日志log4j 1.7.25 Java反射 单例模式、工厂模式、代理模式 项目结构 biz包:包括页面爬取逻辑的

    Spring Boot实战与原理分析视频课程包含14-18

    --演示了如何在Spring Boot里面使用日志配置,以及logback,log4j2等日志的使用 23 Spring Boot 监控和度量47:09 --Spring Boot内置的监控点、自定义的监控状况检查、自定义度量统计,输出等等 24 Spring Boot ...

    日志集群分析器hblog.zip

    支持的体制格式有:Syslog、 Log4j、Java GC log。具有以下功能:Remote access to logs via a single CLIMulti-host summaries of log line frequenciesMulti-host realtime tailing (like tail -f) 标签:...

    《程序天下:J2EE整合详解与典型案例》光盘源码

    6.2 建立Log4j的开发环境 6.2.1 下载Log4j 6.2.2 配置Log4j 6.3 Log4j的使用方法 6.3.1 配置Log4j 6.3.2 配置根Logger 6.3.3 指定日志输出位置 6.3.4 指定日志输出格式 6.3.5 指定日志输出优先级 6.3.6 在代码中使用...

    北风客户关系管理源码 CRM

    4.日程/任务管理(包括日志之类的Log4J、JUnit技术) 5.项目管理 6.数据字典 .......................................................................... 六、课程特色 1真实性、实战性 如果您能够完整的学好这个...

    Java进销存ERP管理系统源码

    日志管理:Log4j 2.10.0 JS框架:Jquery 1.8.0 UI框架: EasyUI 1.3.5 模板框架: AdminLTE 2.4.0 项目管理框架: Maven 3.2.3 开发环境: IDE: IntelliJ IDEA 2017+ eclipse DB: Mysql5.7.4 JDK: JDK1.8 Maven: Maven...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE 1.2 J2EE组件 1.2.1 客户端组件 1.2.2 Web组件 1.2.3 业务逻辑组件 1.3 J2EE...

Global site tag (gtag.js) - Google Analytics