美文网首页
日志库的历史和体系

日志库的历史和体系

作者: hemiao3000 | 来源:发表于2022-09-02 11:51 被阅读0次

整个 Java 日志库领域绕不开的人物是 Ceki Gülcü,大半个日志库领域都与他有关。

日志库及其发展历史

  • Java 1.4 之前 JDK 中并没有日志相关功能。Apache 基金会的 Log4j 是整个 Java 世界的唯一选择。<small>Ceki Gülcü 是其作者。</small>

  • 2002 发布的 Java 1.4 自带了自己的日志库:jdk-logging,也称为 J.U.L

  • Log4j 和 jdk-logging 两种日志库选择,导致了日志使用的混乱。所以 Apache 推出了commons-logging 。它只是定义了一套日志接口<small>(也是第一个日志接口)</small>,支持运行时动态加载日志组件。它的出现解决了多种日志框架共存的尴尬,也是面向接口编程思想的一种具体体现。

  • 2006 年,Ceki Gülcü(Log4j 的作者)觉得 commons-logging 这套接口设计的不好,容易让开发者写出有性能问题的代码。他离开 Apache 后,又搞出来一套类似 commons-logging 的接口类的日志库:Slf4j 。

  • 在搞出来 Slf4j 之后,Ceki Gülcü 又顺带开发了 Logback,做为 Slf4j 的默认实现。在功能完整度和性能上,Logback 超越了当时所有已有的日志实现框架。

  • 鉴于 logback 的更优秀的设计思路,Apache 基金会重写了 Log4j 库,推出其 2.0 版本。习惯性称为 Log4j2 。

日志库分类

从日志库的发展历史来看,众多的日志相关 Jar 包进行分类,主要分为三类:

接口类

只提供 API 定义,没有提供具体实现。目的是为应用层提供标准化的使用方式。既所谓的面向接口编程。

  • commons-logging<small>(也称 J.C.L,java-commons-logging)</small>

  • SLF4J

实现类

具体的日志实现类,提供对日志的收集/管理功能。受不同的需求、不同的历史环境影响,各框架功能上有许多不同。但遵循进化论规律。

  • Log4j
  • jdk-logging<small>(也称,J.U.L,java-util-logging)</small>
  • Logback
  • Log4j2

桥接类

多种日志实现框架混用情况下,需要借助桥接类进行日志的转换,最后统一成一种进行输出。

  • slf4j-jdk14
  • slf4j-log4j12
  • log4j-slf4j-impl
  • logback-classic
  • slf4j-jcl
  • jul-to-slf4j
  • log4j-over-slf4j
  • icl-over-slf4j
  • log4j-to-slf4j

日志库关系图

20220627135126.png

相关文章

  • PostgreSQL DBA(15) - WAL文件结构

    数据库的历史变更会持久化到事务日志文件中,本节简单介绍了PG中事务日志文件的体系结构(以下简称WAL文件结构)。 ...

  • Java日志实现知多少?

    1.Java日志历史 Java 拥有功能和性能都非常强大的日志库,但不幸的是,这样的日志库有不止一个——相信每个J...

  • ZooKeeper源码分析之数据库日志

    本篇我们来分析ZooKeeper的数据库日志,ZooKeeper的数据库日志分为两类,快照日志和事务日志。快照日志...

  • PostgreSQL 事务日志WAL结构浅析

    摘要 事务日志是数据库的重要组成部分,存储了数据库系统中所有更改和操作的历史,以确保数据库不会因为故障(例如掉电或...

  • MySQL中bin-log与redo-log的区别

    首先,从体系结构上来讲: binlog由数据库上层(server 层)生成,是SQL执行的逻辑日志。 redo l...

  • Log

    混乱的 Java 日志体系 正确的打日志姿势

  • 清理历史文件脚本

    清理历史日志和垃圾文件脚本 清理历史文件脚本 配置文件 日志配置文件 运行

  • go日志框架之logrus

    本文转载自姜总 golang日志库 golang标准库的日志框架非常简单,仅仅提供了print,panic和fat...

  • SQL 磁盘满了,处理方式

    分离数据库 备份日志 删除日志 附加数据库,新生成数据库日志文件

  • 2018-01-14 Java应用日志

    java日志体系 java日志体系很混乱。在日志实现框架在有log4j,log4j2,java.util.log,...

网友评论

      本文标题:日志库的历史和体系

      本文链接:https://www.haomeiwen.com/subject/aueunrtx.html