log4j架构
Log4j采用分层架构
Log4j框架组件图
Log4j对象分类
核心对象
Logger对象
Layout对象
Appender对象
支持对象
Level对象
Filter对象
ObjectRenderer对象
LogManager对象
Log4j采用分层架构
Log4j框架组件图
Log4j对象分类
核心对象
Logger对象
Layout对象
Appender对象
支持对象
Level对象
Filter对象
ObjectRenderer对象
LogManager对象
log4j架构
Log4j采用分层架构
Log4j API
采用分层架构,每一层有不同的对象,完成不同的任务。这种分层架构让设计变得灵活,且易于日后扩展。
Log4j框架组件图
下图展示了Log4j框架中的组件:
Log4j对象分类
Log4j
里有两种类型的对象:
- 核心对象:这是框架必需的对象,使用框架时必需用到它们。
- 支持对象:这是框架的可选对象,它们支持核心对象做一些额外的,但并不重要的任务。
核心对象
核心对象包括如下几种类型:
Logger对象
最上一层是Logger
对象,该对象负责获取日志信息,并存储于一个分层的命名空间之中。
Layout对象
Layout
层提供了用于以各种风格格式化日志信息的对象,在发布日志信息之前,它为appender
对象提供支持。Layout
对象对于发布日志信息非常重要,它使日志变得可读、可复用。
Appender对象
该对象位于分层架构中的较低一层,Appender
对象负责将日志信息发布到不同目的地,比如:
- 数据库、
- 文件、
- 控制台、
Unix Syslog
等。
支持对象
Log4j 中还有其他一些对象,同样在框架中发挥着重要作用。
Level对象
Level
对象定义了日志信息的粒度和优先级。API
定义了七种级别:
序号 级别 描述 8 OFF
最高级别,用于关闭日志。 7 FATAL
指明非常严重的错误事件,可能会导致应用终止执行。 6 ERROR
指明错误事件,但应用可能还能继续运行。 5 WARN
指明潜在的有害状况。 4 INFO
指明描述信息,从粗粒度上描述了应用运行过程。 3 DEBUG
指明细致的事件信息,对调试应用最有用。 2 TRACE
比 DEBUG
级别的粒度更细。1 ALL
所有级别,包括定制级别。
Filter对象
Filter
对象用来分析日志信息,进而决定该条日志是否被记录。
一个Appender
对象可对应多个Filter
对象,当日志信息传给Appender
对象时,与其关联的所有Filter
对象需要判断是否将日志信息发布到目的地。
ObjectRenderer对象
ObjectRenderer
对象负责为传入日志框架的不同对象提供字符串形式的表示,Layout
对象使用该对象来准备最终的日志信息。
LogManager对象
LogManager
对象管理日志框架,它负责从系统级的配置文件或类中读取初始配置参数。