Log4j官方文档翻译(二、架构设计)

log4j遵循层次化架构,每个层都有不同的对象来执行不同的任务。这种层次话的结构灵活设计、易于未来的扩展。

log4j框架中有两种对象:

  • 核心对象:框架的支撑对象,是框架必不可少的组成部分。
  • 支撑对象:这些是框架可选的对象,用于提供额外重要的工作。

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

  1. logger对象,是最高的层,负责通过不同的风格转化日志信息。它提供给appender对象发布前的信息。(这里的层是指所处的位置)
  2. layout对象,用于提供格式化日志信息的风格,在发布日志信息前,使其变得可读、可重用。
  3. appender对象,这个对象属于底层的对象,它负责发布信息到不同的目的地,比如数据库、文件、控制台、UNIXsyslog等等。

下面就是log4j的架构组成图:

支撑对象,他们在log4j框架中扮演了很关键的角色:

  1. level对象:级别对象定义来日志信息的粒度和优先级,有七种级别:OFF,DEBUG,INFO,ERROR,WARN,FATAL和ALL。
  2. 过滤器对象:用于分析日志信息并决定日志信息是否输出。每个appender对象可以有几个过滤器对象协同工作,当日志信息到达特定的appender时,所有的过滤器会功能帮助appender在其发布到目的地之前进行过滤操作。
  3. 对象渲染器:提供一段字符串用于识别发送日志的不同对象,这个对象也用于为layout对象准备常量信息。
  4. 日志管理器:用于管理日志框架,它负责从初始化配置中读取信息,这个配置可能是文件配置、也可能是类的配置。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑泽君的专栏

Java主函数解释、java/javac命令解释、classpath解释

任何一段程序必须要有一个执行的起始点,有一个入口,这个入口就是主函数,本质上这个主函数就被虚拟机所调用。 即:主函数是一个入口、它被虚拟机所调用、有了主函数就能...

1021
来自专栏Golang语言社区

Golang语言--select

Golang语言--select golang的select与channel配合使用。它用于等待一个或者多个channel的输出。 应用场景:主goroutin...

3527
来自专栏我是攻城师

Spring-Boot中如何使用多线程处理任务

3254
来自专栏大内老A

[WCF 4.0新特性] 默认绑定和行为配置

对于传统的WCF配置系统,无论是绑定的配置还是行为(服务行为和终结点行为)都必须具有一个名称。而正是通过整个配置名称,它们才能被应用到目标对象(终结点或者服务)...

18710
来自专栏性能与架构

Linux下完胜top的进程监控工具

top 是平时常用的进程监控工具,可以看到CPU、内存、系统负载、进程占用资源等信息 但 top 比较老了,htop 作为进程监控工具的后起之秀,不仅提供了t...

3626
来自专栏开源优测

如何用Python调用java程序

如何用Python调用java程序 前言 不会java怎么做Java程序的单元测试呢?我想有一种很好的选择就是Python,充分利用Python的胶水语言的特性...

7325
来自专栏JavaEdge

JVM性能调优实战(一) - 基于JDK命令行的监控1 JVM的参数类型2 查看JVM运行时参数3 jstat查看JVM统计信息GC

631
来自专栏Rgc

redis权限认证及登录

4681
来自专栏大闲人柴毛毛

Linux文件权限与目录管理

Linux文件系统的三种身份 文件所有者 同组用户 同一个用户组的用户可以访问该用户组的文件; 每个账号可以加入多个用户组。 在同一个用户组的...

4148
来自专栏www.96php.cn

[ecshop模板]ecshop会员中心点击查询包裹报错修改方法

会员中心中点击跟踪包裹,显示链接错误。您是否遇到过这个问题呢,修改方法其实很简单,操作如下: ? 修改themes/68ecshop_XXX/user_tran...

3194

扫码关注云+社区

领取腾讯云代金券