一、log4j源码解析
最近出现一个问题,弄得我不得不把log4j的源代码读了一篇。如果自己不想写代码,可以下载此代码:https://github.com/lwwcl1314/atlantis/tree/master/common/src/main/java/com/atlantis/study/log先讲下log4j的设计.log4j主要有元素:logger level appender layout filter,大致的组织关系如下:
与其他类结合一起,基本如下所示:![]()
类图的左边基本是构建部分,其中比较关键的一个类是:Hierarchy,他组织了一个logger的父子关系。代码中:Category的方法; void callAppenders(LoggingEvent event),在找appender的时候,是向父Category遍历,直到找到一个含有appender的父Category。