log4j - 架构

  • 简述

    log4j API 遵循分层架构,其中每一层提供不同的对象来执行不同的任务。这种分层架构使设计灵活且易于将来扩展。
    log4j 框架有两种类型的对象可用。
    • Core Objects:这些是框架的强制性对象。他们需要使用该框架。
    • Support Objects:这些是框架的可选对象。它们支持核心对象执行额外但重要的任务。
  • 核心对象

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

    记录器对象

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

    布局对象

    布局层提供用于以不同样式格式化日志信息的对象。它在发布日志信息之前为 appender 对象提供支持。
    布局对象在以人类可读和可重用的方式发布日志信息方面发挥着重要作用。

    Appender 对象

    这是一个提供 Appender 对象的较低级别的层。Appender 对象负责将日志信息发布到各种首选目的地,例如数据库、文件、控制台、UNIX 系统日志等。
    以下虚拟图显示了 log4J 框架的组件:
    log4j 架构
  • 支持对象

    log4j 框架中还有其他重要的对象,它们在日志记录框架中起着至关重要的作用:

    关卡对象

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

    过滤对象

    Filter 对象用于分析日志信息并进一步决定是否应该记录该信息。
    一个 Appender 对象可以有多个与之关联的 Filter 对象。如果将日志信息传递给特定的 Appender 对象,则与该 Appender 关联的所有 Filter 对象都需要批准日志信息,然后才能将其发布到附加目标。

    对象渲染器

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

    日志管理器

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