slf4j-simple:使用SLF4J自带 slf4j-nop:不打印日志 slf4j-jcl:? SLF4J静态绑定原理:SLF4J会在编译时查找org.slf4j.spi.LoggerFactoryBinder(2.0.0版本后,被org.slf4j.spi.SLF4JServiceProvider)的实现类,如slf4j-log4j12的实现类org.slf4j.impl.StaticLoggerBinder,该类里面实现对具体日志方案的绑定接入。任何...
slf4j-api只提供api,具体日志实现由slf4j-simple提供 importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;publicclassSLF4JTest{@Testpublicvoidtest01(){Loggerlogger=LoggerFactory.getLogger(SLF4JTest.class);logger.trace("trace信息");logger.debug("debug信息");logger.info("info信息");logger.warn("warn...
SLF4J 不使用类加载器,而是,很简单:它加载 org.slf4j.impl.StaticLoggerBinder。每一个 SLF4J 的实现(例如slf4j-log4j 绑定)提供一个有确切名称的类。 @Testpublicvoidtest(){Loggerlogger=LoggerFactory.getLogger(Slf4jTest.class); logger.info("slf4j log"); } 我们来看一下 LoggerFactory.getLogger(Slf4j...
1.在没有绑定任何日志实现的基础之上,日志是不能够绑定实现任何功能的,值得大家注意的是,通过我们刚刚的演示,slf4j-simple是slf4j官方提供的。使用的时候,也是需要导入依赖,自动绑定到slf4j门面上。如果不导入,slf4j 核心依赖是不提供任何实现的。 2.logback和simple(包括nop)都是slf4j门面时间线后面提供的日志实现,...
通过上面的介绍,我们可以知道JCL和SLF4J都是日志门面(Facade),而Log4J、Log4J2和LogBack都是子系统角色(SunSystem),也就是具体的日志实现框架。他们的关系如下。 使用日志门面引入日志组件的最大优势是:将系统和具体的日志实现框架解耦合。 假如说我们不使用日志门面,直接使用特定的日志框架(比如说Log4J)的API进行编程...
同时,如果项目选择 Log4J、Log4J2 或 Logback 作为最终的日志实现,需要确保:在项目的类路径(Classpath)上首先加载 JCL-Over-SLF4J,这样对 JCL 的调用会被拦截并转发到 SLF4J。确保仅有一个 SLF4J 实现绑定在类路径上。例如,如果选择了 Logback,则需包含 slf4j-api 和 logback-classic 库;若选择 Log4J 或 ...
如:slf4j-simple,它的依赖: 它是一个实现类,实现了slf4j的logger接口。 slf4j-jdk4,它的依赖是: 他提供的是基于slf4j的logger接口,针对java.util,logging实现的适配类。 相应的实现由Jdk提供实现,无需依赖其它的第三方。 slf4j-jcl,它的依赖: 它提供的是基于slf4j的logger接口的,针对commons-logging实现的适...
slf4j-api 包含了SLF4J API,比如,使用SLF4J的一个应用或者库直接依赖的所有classes。 一系列绑定,它们(slf4j-log4j12,slf4j-jdk14和slf4j-jcl)基于一个已存在的日志框架来实现了SLF4J API,或者为SLF4J开发原生实现(slf4j-nop和slf4j-simple)。 绑定的原理是因为slf4j-api中的LogFactory通过StaticLoggerBinder....
所以使用 SLF4J 的比较典型搭配就是把 slf4j-api、JCL 桥接器、java.util.logging(JUL)桥接器、log4j 绑定器、log4j 这5个 jar 放置在 CLASS_PATH 里。 不过并不是所有APP容器都是使用 log4j 的,比如 Google AppEngine 它使用的是 java.util.logging(JUL),这时应用 SLF4J 的搭配就变成 slf4j-api、JCL桥接...
所以使用 SLF4J 的比较典型搭配就是把 slf4j-api、JCL 桥接器、java.util.logging(JUL)桥接器、log4j 绑定器、log4j 这5个 jar 放置在 CLASS_PATH 里。 不过并不是所有APP容器都是使用 log4j 的,比如 Google AppEngine 它使用的是 java.util.logging(JUL),这时应用 SLF4J 的搭配就变成 slf4j-api、JCL桥接...