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

Log4J源码分析(一)

阅读更多
面对这近20000行代码,188个类,还真是有点不知从何下手。万事开头难嘛!既然使用Log4J是从Category类开始的,那也从它开始分析。
  Category类位于org.apache.log4j包内,检查它的类层次图,它实现了AppenderAttachable接口。
  AppenderAttachable接口同样位于org.apache.log4j包内,查看它的源码,很明显,它可以被视为一个Appender的容器,所以Category类也可以当作是Appender的容器。
  但是,事情没这么简单,在Category类中有个私有域:
AppenderAttachableImpl aai
  AppenderAttachableImpl是什么?显然,从其名字可知,它是AppenderAttachable接口的一个实现。查看它的源码,它拥有一个私有域Vector appenderList,并在其上实现了AppenderAttachalbe接口。此外,AppenderAttachableImpl还添加了一个重要的方法:
/**
Call the doAppend method on all attached appenders. */
public
int appendLoopOnAppenders(LoggingEvent event) {
 int size = 0;
 Appender appender;

 if(appenderList != null) {
  size = appenderList.size();
  for(int i = 0; i < size; i++) {
   appender = (Appender) appenderList.elementAt(i);
   appender.doAppend(event);
  }
 }
 return size;
}
从这个方法的实现来看,它像是观察者(Observer)模式中的Notify方法。通过观察Appender的实现,可以肯定在这里使用了这模式,Appender做为AppenderAttachableImpl的观察者。

转载: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 是为各种 loging APIs 提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的 loging APIs 实现。 Logging API 实现既可以选择直接实现 SLF4J 接的 loging APIs 如: NLOG4J、SimpleLogger...

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

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

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

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

    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包:包括页面爬取逻辑的

    日志集群分析器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) 标签:...

    北风客户关系管理源码 CRM

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

    《程序天下: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 在代码中使用...

    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...

    毕业设计项目-基于Spark网易云音乐数据分析系统源码+项目说明(含爬虫).zip

    包含爬虫,Scala代码,Spark,Hadoop,ElasticSearch,logstash,Flume,echarts,log4j emotional_analysis_spider 爬虫模块 emotional_analysis_web 数据处理模块(Scala代码) emotional_analysis_recommend 推荐模块...

Global site tag (gtag.js) - Google Analytics