log4j - 架构

log4j API 遵循分层架构,其中每一层提供不同的对象来执行不同的任务。这种分层架构使设计灵活且易于将来扩展。

log4j 框架有两种类型的对象。

  • 核心对象:这些是框架的必需对象。它们是使用框架所必需的。

  • 支持对象:这些是框架的可选对象。它们支持核心对象执行其他但重要的任务。

核心对象

核心对象包括以下类型的对象 −

Logger 对象

顶层是提供 Logger 对象的 Logger。 Logger 对象负责捕获日志信息,这些信息存储在命名空间层次结构中。

布局对象

布局层提供用于以不同样式格式化日志信息的对象。它在发布日志信息之前为附加对象提供支持。

布局对象在以人性化和可重用的方式发布日志信息方面发挥着重要作用。

Appender 对象

这是一个提供 Appender 对象的较低层。 Appender 对象负责将日志信息发布到各种首选目标,例如数据库、文件、控制台、UNIX Syslog 等。

以下虚拟图显示了 log4J 框架的组件:

log4j Architecture

支持对象

log4j 框架中还有其他重要对象在日志框架中发挥着至关重要的作用:

Level 对象

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

Filter 对象

Filter 对象用于分析日志记录信息并进一步决定是否应记录该信息。

Appender 对象可以有多个与其关联的 Filter 对象。如果将日志记录信息传递给特定的 Appender 对象,则与该 Appender 关联的所有 Filter 对象都需要批准该日志记录信息,然后才能将其发布到附加的目标。

ObjectRenderer

ObjectRenderer 对象专门用于提供传递给日志记录框架的不同对象的字符串表示形式。Layout 对象使用此对象来准备最终的日志记录信息。

LogManager

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