离线下载
PDF版 ePub版

极客学院团队出品 · 更新于 2018-11-28 11:00:42

架构

Log4j API 采用分层架构,每一层有不同的对象,完成不同的任务。这种分层架构让设计变得灵活,且易于日后扩展。

Log4j 里有两种类型的对象:

  • 核心对象:这是框架必需的对象,使用框架时必需用到它们。
  • 支持对象:这是框架的可选对象,它们支持核心对象做一些额外的,但并不重要的任务。

核心对象

核心对象包括如下几种类型:

Logger 对象

最上一层是 Logger 对象,该对象负责获取日志信息,并存储于一个分层的命名空间之中。

Layout 对象

Layout 层提供了用于以各种风格格式化日志信息的对象,在发布日志信息之前,它为 appender 对象提供支持。

Layout 对象对于发布日志信息非常重要,它使日志变得可读、可复用。

Appender 对象

该对象位于分层架构中的较低一层,Appender 对象负责将日志信息发布到不同目的地,比如数据库、文件、控制台、Unix Syslog 等。

下图展示了 Log4j 框架中的组件:

支持对象

Log4j 中还有其他一些对象,同样在框架中发挥着重要作用。

Level 对象

Level 对象定义了日志信息的粒度和优先级。API 定义了七种级别:OFF、DEBUG、INFO、ERROR、WARN、FATAL、ALL。

Filter 对象

Filter 对象用来分析日志信息,进而决定该条日志是否被记录。

一个 Appender 对象可对应多个 Filter 对象,当日志信息传给 Appender 对象时,与其关联的所有 Filter 对象需要判断是否将日志信息发布到目的地。

ObjectRenderer

ObjectRenderer 对象负责为传入日志框架的不同对象提供字符串形式的表示,Layout 对象使用该对象来准备最终的日志信息。

LogManager

LogManager 对象管理日志框架,它负责从系统级的配置文件或类中读取初始配置参数。

上一篇: 安装 下一篇: 配置