SLF4J软件介绍
slf4j,simple logging facade for java的缩写,翻译为java的简单日志外观。slf4j是一个开源项目,它提供我们一个一致的API来使用不同的日志框架,比如: java.util.logging,logback,log4j等。slf4j使用户可以在运行时嵌入他们想使用的日志框架。从名字中可以看出,它其实使用的是facade设计模式来实现的。
使用slf4j,只有一个强制性的依赖,就是slf4j-api-x.x.x.jar,我们在编写代码的时候,只会使用这个jar包里的API,应用程序在运行时去类路径下查找绑定的具体日志框架,并使用该绑定的日志框架进行实际的日志操作,如果在应用程序的类路径下面没有找到合适的绑定的话,slf4j默认使用一个没有任何操作的实现。
在许多著名的项目中都使用了slf4j,比如:Apache ActiveMQ, Ehcache, H2 database, Gradle, GreenMail, Hibernate.....
SLF4J软件特色
二进制兼容
一个SLF4J绑定指定一个具体的依赖用来在底层日志框架绑定slf4j,比如说 slf4j-jdk14.jar或 slf4j-log4j12.jar。
不同版本的 slf4j-api.jar和SLF4J绑定混合在一起可能会引起问题。比如说,如果你使用 slf4j-api-1.7.19.jar,然后你应该使用 slf4j-simple-1.7.19.jar,使用 slf4j-simple-1.5.5.jar将不会正常工作。
然而,从客户端的观点来看,所有版本的 slf4j-api都是兼容的。使用 slf4j-api-N.jar编译的客户端代将和 slf4j-api-M.jar一起完美运行,N和M都是任意的。你仅仅需要确保你绑定的版本和 slf4j-api.jar 匹配。你不需要担心项目中给定的依 赖的slf4j-api.jar的版本。你可以使用任何版本的 slf4j-api.jar,只要 slf4j-api.jar的版本和它的绑定匹配,就不会有问题。
在初始化的时间,如果SLF4J怀疑可能有不匹配问题。将会发出关于不匹配的警告信息。
通过SLF4J统一日志
通常,一个给定的项目依赖于各种各样的组件,这些组件依赖的日志API不是SLF4J。一个项目依赖于一个JCL、java.util.logging、log4j和SLF4J是很常见的。然后通过一个单独的方式来统一日志变得让人满意。SLF4J通过提供对JCL、
java.util.logging、和slf4j的桥接模块来满足这个普通的用例。更详细的内容,请参考 Bridging legacy APIs.
MDC支持
“Mapped Diagnostic Context”本质上是日志框架包含的一个map,应用程序代码提供了key-value对,这个键值对能被日志框架插入到日志信息中去。MDC数据在过滤信息或触发某些操作时是非常有用的。
SLF4J支持MDC,如果一个底层的日志框架提供了MDC功能,SLF4J将委托给底层日志框架的MDC。注意,现在仅仅只有log4j和logback提供了MDC功能。如果底层日志框架不支持MDC,比如说java.util.loggin,SLF4J将存储MDC数 据,但是里面的数据需要用户通过代码来获取。
因此,作为一个SLF4J使用者,能利用当 log4j和logback存在时的 MDC信息,但是不能强迫用户依赖这些日志框架。
SLF4J使用说明
1、如果用maven,添加slf4j-api依赖,我们用最新的版本2.0.0-alpha1;再添加一个实现框架logback,logback中logback-classic实现了slf4j接口,我们也添加最新版本1.3.0-alpha5。
2、添加logback.xml配置文件
3、写个测试程序
SLF4J更新日志
将bug扫地出门进行到底
优化用户反馈的问题,提升细节体验
华军小编推荐:
SLF4J软件占用内存小,性能稳定,无任何捆绑,绿色安全,真正是一款良心软件!本站还有OpenCart、Java2 Runtime Environment、Eclipse IDE for Java EE Developers For Linux(64-bit)、GCC For Linux、Free Pascal,供您下载!
有用
有用
有用