日志框架详解(slf4j,log4j,logback)

我相信对于绝大多数小白来说,日志框架这一块会特别的头痛,特别是在一个大项目中,POM文件中包含了各种各样的日志依赖,然后各种各样的日志依赖(slf4j,logging,log4j,logback等)又相互冲突,导致我们经常不知道该怎么办,对于输出的日志格式也经常是随缘的,系统怎么输出就怎么看,根本拿它没有办法。现在就让我们来全面的了解一些不同的日志框架,使其可以很好的为我们所用,成为我们消灭bug的一个好帮手。


The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks (e.g. java.util.logging, logback, log4j) allowing the end user to plug in the desired logging framework at deployment time

我们日常比较常见的日志框架有slf4j、logging、log2j,logback,slf4j的全称是Simple Logging Faced for Java,采用的是一种门面模式,是各种日志的系统实现(logging,log4j,logback)的抽象层或者接口层。因此我们就可以把slf4j理解成各种日志框架的api,这样我们在需要使用日志的地方,使用的是slf4j的api,而不是特定的日志框架的api去打印日志,提高了可扩展性和可维护性。

对于slf4j在日志系统中的地位,官网中的示意图如下:

日志框架详解(slf4j,log4j,logback)_第1张图片

接下来看一些日志框架使用的例子

第一种只引入slf4j

日志框架详解(slf4j,log4j,logback)_第2张图片
日志框架详解(slf4j,log4j,logback)_第3张图片

上面的意思是,在运行的时候,找不到日志的实现,所以slf4j默认的使用了一个什么也不做的实现。


第二种引入slf4j和simple

日志框架详解(slf4j,log4j,logback)_第4张图片
日志框架详解(slf4j,log4j,logback)_第5张图片

可见日志已经打印出来了,而且还不需要任何的配置。


第三种使用slf4j和log4j


日志框架详解(slf4j,log4j,logback)_第6张图片
日志框架详解(slf4j,log4j,logback)_第7张图片

在没有配置log4j输出格式的时候,系统就会进行提醒,不会打印出日志。进行如下配置:


第四种使用slf4j和jdk


日志框架详解(slf4j,log4j,logback)_第8张图片
日志框架详解(slf4j,log4j,logback)_第9张图片
日志框架详解(slf4j,log4j,logback)_第10张图片

你可能感兴趣的:(日志框架详解(slf4j,log4j,logback))