Java 日志门面和日志实现,是否傻傻分不清

参考文章

SLF4J的文档

  • SLF4J(Simple Logging Facade for Java):日志门面
  • Logback:日志实现
<dependency> 
  <groupId>ch.qos.logbackgroupId>
  <artifactId>logback-classicartifactId>
  <version>1.3.6version>
dependency>

上面一个依赖坐标就可以使用SLF4J+Logback这个日志门面实现组合,为什么,可以看logback-classic依赖里面包含的依赖logback-coreslf4j-api
Java 日志门面和日志实现,是否傻傻分不清_第1张图片

Logback’s architecture is quite generic so as to apply under different circumstances. At present time, logback is divided into three modules, logback-core, logback-classic and logback-access.

logback当前分成三个模块:logback-corelogback-classiclogback-access

logback-core 是其它两个模块的基础模块。
logback-classic 模块可以同化为 log4j 1.x 的显着改进版本。
此外,logback-classic 本身实现了SLF4J API,因此您可以轻松地在 logback 和其他日志框架(例如 log4j 1.xjava.util.logging (JUL))之间来回切换。

logback-access 模块与 Servlet 容器(例如 Tomcat 和 Jetty)集成,以提供 HTTP 访问日志功能。

SLF4J 日志桥接器

Java 日志门面和日志实现,是否傻傻分不清_第2张图片
Java 日志门面和日志实现,是否傻傻分不清_第3张图片

slf4j-simple-1.7.30.jar:pom直接引入,就可以使用了,包含了slf4j-api模块及其简单的日志实现。

logback-classic-1.0.13.jar: pom引入,相当于引入了slf4j-api模块和logback-core模块。

In addition to logback-classic-1.4.6.jar, this will pull in slf4j-api-2.0.9.jar as well as logback-core-1.4.6.jar into your project.

Java 日志门面和日志实现,是否傻傻分不清_第4张图片

使用Slf4j时如何桥接遗留的api

在实际环境中我们经常会遇到不同的组件使用的日志框架不同的情况,例如Spring Framework使用的是日志组件是Commons Logging,XSocket依赖的则是Java Util Logging。
当我们在同一项目中使用不同的组件时应该如果解决不同组件依赖的日志组件不一致的情况呢?现在我们需要统一日志方案,统一使用Slf4j,把他们的日志输出重定向到Slf4j,然后Slf4j又会根据绑定器把日志交给具体的日志实现工具。
Slf4j带有几个桥接模块,可以重定向Log4jJCLjava.util.logging的Api到Slf4j

Java 日志门面和日志实现,是否傻傻分不清_第5张图片

你可能感兴趣的:(java)