log4j API遵循分层体系结构,其中每个层提供不同的对象以执行不同的任务。这种分层的体系结构使设计更加灵活,并且易于将来扩展。
log4j框架提供两种对象。
- 核心对象(Core Objects):这些是框架的强制性对象。他们必须使用该框架。
- 支持对象(Support Objects):这些是框架的可选对象。它们支持核心对象来执行其他但重要的任务。
核心对象(Core Objects)
核心对象包括以下类型的对象:
记录器对象(Logger Object)
顶层是提供Logger对象的Logger。Logger对象负责捕获日志记录信息,它们存储在名称空间层次结构中。
布局对象(Layout Object)
布局层提供了一些对象,这些对象用于格式化不同样式的日志记录信息。它在发布日志记录信息之前为附加程序对象提供支持。
布局对象在以人类可读和可重用的方式发布日志信息中扮演着重要角色。
追加对象(Appender Object)
这是提供Appender对象的较低层。Appender对象负责将日志记录信息发布到各种首选目标,例如数据库,文件,控制台,UNIX Syslog等。
以下虚拟图显示了log4J框架的组件:
支持对象(Support Objects)
log4j框架中还有其他重要对象,它们在日志记录框架中起着至关重要的作用:
等级对象(Level Object)
Level对象定义任何日志记录信息的粒度和优先级。API中定义了七个日志记录级别:OFF,DEBUG,INFO,ERROR,WARN,FATAL和ALL。
筛选对象(Filter Object)
Filter对象用于分析日志记录信息,并进一步决定是否应记录该信息。
一个Appender对象可以具有多个与之关联的Filter对象。如果将日志记录信息传递到特定的Appender对象,则与该Appender关联的所有Filter对象都需要批准日志记录信息,然后才能将其发布到附加的目的地。
对象渲染器(ObjectRenderer)
ObjectRenderer对象专门用于提供传递给日志框架的不同对象的String表示形式。布局对象使用此对象来准备最终的日志记录信息。
日志管理器(LogManager)
LogManager对象管理日志记录框架。它负责从系统范围的配置文件或配置类中读取初始配置参数。