面对这近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效率测试源码
log4j返序列化源码分析
log4j 介绍 log4j 1.x 源码分析 logback log4j2介绍
分三类文件,pom通过maven构建所需jar包,log4j2.xml配置文件,TestController.java测试类,使用debug测试效果较明显。
深入的介绍log4j的各种使用方法,不容错过
apache-log4j-2.4-src.zip 源码加入,就可以看到log4j内部的源码了
NULL 博文链接:https://adrain-work-163-com.iteye.com/blog/1545091
log4c的源代码。log4c是用C语言编写的日志工具,借鉴了log4j的思想,可以自由配置日志的输出格式、输出文件等,是一个很方便的程序调试、运行追踪工具。还有一个C语言的日志工具是ZLog,与这个有些像。
优秀而且实用的代码有很多,比如Junit,比如Jive,比如petStore,甚至是tomcat的Example、Log4j的Example。 一段广告完毕,下面就为大家分析一下struts-menu的源码,作为送给大家的圣诞礼物吧。Struts-Menu也来自一...
SLF4J 是为各种 loging APIs 提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的 loging APIs 实现。 Logging API 实现既可以选择直接实现 SLF4J 接的 loging APIs 如: NLOG4J、SimpleLogger...
Log4j、slf4j(by Plinio Freire) 和 ActiveMQ 收集将使其与其他程序轻松兼容。 介绍幻灯片 有什么区别。 RrRabbit 旨在可视化错误日志 易于集成到现有的 Java 应用程序上。 한국어 설명은 에 있습니다。 结构 Web ...
--演示了如何在Spring Boot里面使用日志配置,以及logback,log4j2等日志的使用 23 Spring Boot 监控和度量47:09 --Spring Boot内置的监控点、自定义的监控状况检查、自定义度量统计,输出等等 24 Spring Boot ...
spring mvc maven项目,导入IDEA后无报错,需要在IDEA中...该项目使用servlet3.0规范,无web.xml,无spring.xml等配置文件,所有的配置均通过Java Config、注解搞定,项目中还集成了log4j2技术,以及前端html文件等。
java8 集合源码分析 spider-tangpoem项目 优雅的使用WebMagic框架,爬取唐诗别苑网的诗人诗歌数据 ...日志log4j 1.7.25 Java反射 单例模式、工厂模式、代理模式 项目结构 biz包:包括页面爬取逻辑的
支持的体制格式有: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) 标签:...
4.日程/任务管理(包括日志之类的Log4J、JUnit技术) 5.项目管理 6.数据字典 .......................................................................... 六、课程特色 1真实性、实战性 如果您能够完整的学好这个...
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 在代码中使用...
日志管理: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...
包含爬虫,Scala代码,Spark,Hadoop,ElasticSearch,logstash,Flume,echarts,log4j emotional_analysis_spider 爬虫模块 emotional_analysis_web 数据处理模块(Scala代码) emotional_analysis_recommend 推荐模块...