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对象管理日志框架,它负责从系统级的配置文件或类中读取初始配置参数。