Log4j日志体系结构
2017-01-16 10:16
459 查看
http://www.jointforce.com/jfperiodical/article/4031?utm_source=tuicool&utm_medium=referral
我们在写日志的时候首先要获取logger,在每一个使用log4j的项目都有很多个地方要获取logger,这些logger是真实的被实例化的Logger对象,他们有可能被分散在无数不同的类中,日志体系结构讲的是这些logger对象是如何组织的,他们之间又有什么样的关系。
体系结构
我们举个具体的实例来看看,假设我的项目包结构如下:
说明一下:com.flu.jdk包下面有两个类分别是LogTest1和LogTest2,然后在包com.flu包下面有一个LogTest3类,很显然,com.flu.jdk包是com.flu包的子包。假设我们在这三个类中分别通过LogManager.getLogger(xxx.class)获取三个logger实例,他们分别是logger1、logger2和logger3,我们将要讨论这三个logger的关系。
值得注意的是log4j的日志体系中,有一个特殊的日志对象叫做root(根),他是始终存在的,假设我们首先获取logger实例,log4j将构造下面这样一个图形(我不能把它叫做树):
当只有logger1的时候
当我们获取logger2实例的时候,这个图将变成:
当加入logger2日志实例时结构图
当我们获取logger3实例的时候,这个图又变了一个样,如下:
当加入logger3日志实例之后
仅仅才三个日志实例,图就搞的略复杂,可想log4j应用中,将会有无数的日志实例按照这个规律组成纷繁复杂的有向图结构,虽然看起来杂乱,但是又规律。那么问题来了,这样的结构有什么用呢?下一节我们将会看到这种结构对于日志配置继承的影响。
配置继承
log4j日志级别定义
在往下面看之前我们先来看看log4j对日志级别的定义:
我们在写日志的时候首先要获取logger,在每一个使用log4j的项目都有很多个地方要获取logger,这些logger是真实的被实例化的Logger对象,他们有可能被分散在无数不同的类中,日志体系结构讲的是这些logger对象是如何组织的,他们之间又有什么样的关系。
体系结构
我们举个具体的实例来看看,假设我的项目包结构如下:
说明一下:com.flu.jdk包下面有两个类分别是LogTest1和LogTest2,然后在包com.flu包下面有一个LogTest3类,很显然,com.flu.jdk包是com.flu包的子包。假设我们在这三个类中分别通过LogManager.getLogger(xxx.class)获取三个logger实例,他们分别是logger1、logger2和logger3,我们将要讨论这三个logger的关系。
值得注意的是log4j的日志体系中,有一个特殊的日志对象叫做root(根),他是始终存在的,假设我们首先获取logger实例,log4j将构造下面这样一个图形(我不能把它叫做树):
当只有logger1的时候
当我们获取logger2实例的时候,这个图将变成:
当加入logger2日志实例时结构图
当我们获取logger3实例的时候,这个图又变了一个样,如下:
当加入logger3日志实例之后
仅仅才三个日志实例,图就搞的略复杂,可想log4j应用中,将会有无数的日志实例按照这个规律组成纷繁复杂的有向图结构,虽然看起来杂乱,但是又规律。那么问题来了,这样的结构有什么用呢?下一节我们将会看到这种结构对于日志配置继承的影响。
配置继承
log4j日志级别定义
在往下面看之前我们先来看看log4j对日志级别的定义:
相关文章推荐
- Log4j日志体系结构
- Log4j 日志体系结构
- Log4j日志体系结构
- Log4j日志体系结构解读
- Log4j日志体系结构解读
- Log4j日志体系结构
- Log4j日志体系结构
- oracle rac 日志体系结构!
- oracle物理体系结构-----归档重做日志和闪回恢复区
- java 的日志体系 分析 演化历史 slf4j log4j logback
- oracle物理体系结构---联机重做日志文件
- 事务日志体系结构
- RAC Clusterware 的日志体系结构
- oracle rac 日志体系结构
- oracle rac 日志体系结构
- Oracle体系结构(二)---日志处理机制
- 我的oracle 9i学习日志(1)--体系结构
- oracle rac 日志体系结构!
- Oracle 12c RAC 日志体系结构的变化
- oracle rac 日志体系结构!