Java里面日志框架比较多,slf4j是其中的一种。

为什么要用slf4j

说原因之前先说一种设计模式:门面模式。门面模式的核心是:系统与外部进行通信的时候必须通过一个统一的外观对象。如图
image.png

门面模式的核心为Facade,即门面对象。门面对象的核心有几个点

  • 知道所有子系统的功能和责任
  • 将客户端发来的请求委派的子系统,没有实际的业务逻辑
  • 不参与子系统业务逻辑的实现

Java中常见的日志框架有log4j,slf4j-simple,logback等。如果应用依赖的jar包分别引入了这三种日志框架,那我们不得不维护三套日志API。为了解决这个问题,解决方案就是引入Facade这样一个统一适配层,将日志API统一,外层调用者不必关心具体是使用哪个日志框架。slf4j就是这样一个Facade。更准确的说,slf4j是一种日志规范,而不是具体实现

slf4j使用

slf4j的使用非常简单且统一,在哪都是这么用。

  1. @Test
  2. public void testSlf4j() {
  3. Logger logger = LoggerFactory.getLogger(Object.class);
  4. logger.error("123");
  5. }