Java里面日志框架比较多,slf4j是其中的一种。
为什么要用slf4j
说原因之前先说一种设计模式:门面模式。门面模式的核心是:系统与外部进行通信的时候必须通过一个统一的外观对象。如图
门面模式的核心为Facade,即门面对象。门面对象的核心有几个点
- 知道所有子系统的功能和责任
- 将客户端发来的请求委派的子系统,没有实际的业务逻辑
- 不参与子系统业务逻辑的实现
Java中常见的日志框架有log4j,slf4j-simple,logback等。如果应用依赖的jar包分别引入了这三种日志框架,那我们不得不维护三套日志API。为了解决这个问题,解决方案就是引入Facade这样一个统一适配层,将日志API统一,外层调用者不必关心具体是使用哪个日志框架。slf4j就是这样一个Facade。更准确的说,slf4j是一种日志规范,而不是具体实现
slf4j使用
slf4j的使用非常简单且统一,在哪都是这么用。
@Test
public void testSlf4j() {
Logger logger = LoggerFactory.getLogger(Object.class);
logger.error("123");
}