Java 的日志框架体系以及 slf4j 的整合


共计 889 个字符,预计需要花费 3 分钟才能阅读完成。

1. 日志框架

Java 的日志框架分为日志门面和日志实现,这样的好处是为了解耦,配置更灵活,且通过日志门面可以以一种统一的方式输出日志。

常见的日志框架有以下几种:

日志门面 日志实现
JCL SLF4j jboss-logging log4j jul log4j2 logback

日志门面有三种:

  • JCL: Jakarta Commons Logging,是 apache 的 Jakarta 小组开发的日志门面,但是已经很久没有更新了。

  • SLF4j: 全称 Simple Logging Facade for Java,和日志实现 log4j、logback 是同一作者。

  • jboss-logging:是专门为 jboss 开发的。

日志实现有四种:

  • Log4j: Log4j 是一个广泛使用的 Java 日志框架,提供了丰富的配置选项和灵活的日志记录功能。它支持多种输出目标(如控制台、文件、数据库等),可以根据日志级别过滤日志消息,并具有可插入的日志记录器。

  • JUL: 全称 Java Util Logging,可以通过配置文件或编程方式进行配置。尽管功能相对较简单,但仍然被广泛使用。

  • Log4j2: Log4j2 是 Log4j 的升级版本,由 apache 开发。

  • Logback: Logback 是由 Log4j 作者创造的一个高性能日志框架,旨在成为 Log4j 的继任者。它支持 SLF4J 接口,并提供了许多先进的日志功能,如异步日志记录、按时间和大小滚动的日志文件等。

2. slf4j的使用

需要注意的是在早期版本中,Spring 使用的是 Jakarta Commons Logging (JCL) 作为默认的日志门面,但是没有绑定具体的日志实现。在 Spring 5.x 版本中,改为了使用 SLF4J。并且对于 SpringMVC 和 SpringBoot,它们也会继承 Spring 的默认日志框架。

以 SLF4J 为例,整合其它日志实现,大致情况如下图:

Java 的日志框架体系以及 slf4j 的整合

/>

可以看见 SLF4J 配合 log4j 和 jul 时,需要导入相应的适配层 jar 包。

但是当引入的框架比较多时,可能很多框架的日志门面都不相同,此时需要先将原来的 jar 包排除掉。然后引入 slf4j 的覆盖包,其实还是调用的 SLF4J 接口,然后再调用具体的实现

Java 的日志框架体系以及 slf4j 的整合

提醒:本文发布于407天前,文中所关联的信息可能已发生改变,请知悉!

/>

Tips:清朝云网络工作室

阅读剩余
THE END