一、Java日志体系概述
图1-1 Java日志体系概况
图1-1 展示了Java日志体系的三个主要部分:
日志门面接口(SLF4J、JCL)
一系列绑定和桥接
具体的日志实现
先来两个例子:
Spring项目中通过Commons Logging直接使用log4j
图1-2 通过Commons Logging使用log4j
本例中由于spring-core中原生依赖commons-logging,所以只需要添加log4j和log4j的配置文件就能work(当然引入其它依赖还会有解冲突的工作要做)。
Spring项目中通过SLF4J使用log4j
图1-3 Spring中通过SLF4J使用log4j
此例中比之前多引入了3个jar包并且还排除了commons-logging依赖。如果对此有疑问,请看后面的详细解说。
二、为什么要使用SLF4J
图2-1 列举几点简单的原因
三、SLF4J的最佳实践
现在越来越多项目使用SLF4J (为什么要使用SLF4j)作为一个日志门面,而不是使用古老的Commons Logging。这给复杂的Maven构建带来了新的挑战,因为SLF4J仅当依赖被正确配置时才能正常工作。为了搞清楚为什么如此,让我们来看看组成SLF4J中不同的组件。
slf4j-api 包含了SLF4J API,比如ÿ