Ceki Gülcü创造了日志领域界著名的Log4J,现在又实现一个“简单的日志前端接口(Facade)”- SLF4J,和一个“可靠、通用、快速而又灵活的Java日志框架”- LOGBack。作为日志领域中的新秀,已经有种颠覆领域的趋势了。
SLF4J(Simple Logging Facade for Java)作为commons-logging的替代,为各种logging APIs提供了一个简单的统一接口,使得最终用户能够在部署的时候配置所希望的logging APIs的实现。
SLF4J会根据classpath中所存在的适配器的jar来决定将使用的日志实现库。
若需要将使用了其它logging APIs的第三方类库或已有代码的日志调用迁移到SLF4J,需要替换下面的jar:
jcl-over-slf4j.jar
替换apache commons logging。
log4j-over-slf4j.jar
替换log4j。原有的log4j.properites将失效,需要转换为logback.xml,logback网站上有提供转换器:http://logback.qos.ch/translator/。
jul-to-slf4j.jar
替换jdk logging。需要在程序开始时调用SLF4JBridgeHandler.install()来注册listener。
SLF4J支持参数化的log字符串,避免了之前为了减少字符串拼接的性能损耗而不得不写的if(logger.isDebugEnable()),现在你可以直接写:logger.debug(“current user is: {}”, user)。拼装消息被推迟到了它能够确定是不是要显示这条消息的时候,但是获取参数的代价并没有幸免。同时,日志中的参数若超过三个,则需要将参数以数组的形式传入,如:
Object[] params = {value1, value2, value3};
logger.debug(“first value: {}, second value: {} and third value: {}.”, params);
现在Hibernate、Jetty、Spring-OSGi、Wicket和MINA等项目都已经迁移到了SLF4J,由此可见SLF4J的影响力不可忽视。
LogBack将作为Log4j的替代,和slf4j组成新的日志系统的完整实现。LogBack分为三个模块:logback-core、logback-classic和logback-access。logback-core是其它两个模块的基础;logback-classic是log4j的一个改良版本; logback-access与Servlet容器集成提供通过Http来访问日志的功能。
LogBack声称具有极佳的性能:
“某些关键操作,比如判定是否记录一条日志语句的操作,其性能得到了显著的提高。这个操作在LogBack中需要3纳秒,而在Log4J中则需要30纳秒。LogBack创建记录器(logger)的速度也更快:13毫秒,而在Log4J中需要23毫秒。更重要的是,它获取已存在的记录器只需94纳秒,而Log4J需要2234纳秒,时间减少到了1/23。跟JUL相比的性能提高也是显著的”。
对于一般的系统,个人感觉迁移到SLF4J的必要性不是很大,如果是开发公用类库的话,就很有必要了,而且SLF4J解决了classloader的问题也是个很大的优势。Log是导致程序性能下降的一个问题,LogBack的优化使性能有了很大的提升,如果你的程序遇到了瓶颈,需要全面进行优化的时候,LogBack不失为一个好的选择。是否需要迁移,可从多方面进行考量
分享到:
相关推荐
log4j-slf4j+logback1.3.0 共六个jar包
NULL 博文链接:https://xiayingjie.iteye.com/blog/828498
https://github.com/tomcat-slf4j-logback/tomcat-slf4j-logback上的jar与源码,网络不好,下载不易,特此分享。包括: logback-1.2.3.zip Tomcat7.0.82\tomcat-juli-7.0.82-slf4j-1.7.25-logback-1.2.3.zip Tomcat...
slf4j+logback需要的jar和配置文件,下载之后可以直接使用
Slf4j+logback实现logback测试,Slf4j+logback实现logback测试
slf4j+logback快速上手教程最新流行的日志处理组建
本资源为ssm + shiro学习记录,分享交流 ssm +shiro+slf4j+logback+ajax 学习记录
学习slf4j+logback的时候的小例子,需要用maven下载jar包。
最新的slf4j-1.7.6+logback-1.1.1,压缩包里面全套的源码和class都有的jar
本篇文章主要介绍了Spring Boot 使用slf4j+logback记录日志配置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
NULL 博文链接:https://200cc.iteye.com/blog/2109690
SLF4J(Simple Logging Facade for Java)作为commons-logging的替代,为各种logging APIs提供了一个简单的统一接口,使得最终用户能够在部署的时候配置所希望的logging APIs的实现。
NULL 博文链接:https://wwwzhouhui.iteye.com/blog/391950
Tomcat SLF4J Logback是tomcat的替代产品,它允许所有内部日志记录全部使用我们喜欢的slf4j / logback库。 注意 从logback 1.1.7开始,不再需要在server.xml中包含${catalina.home}来进行logback访问。 我们还重新...
这是logback日志输出需要的jar包,以及最基础的logback.xml配置
springMvc mybaties slf4j所需包
NULL 博文链接:https://liuzidong.iteye.com/blog/776061
源码 博文链接:https://wwwzhouhui.iteye.com/blog/391845
主要介绍了slf4j+logback在java工程中的配置,对日志组件logback也进行了简单介绍,需要的朋友可以参考下
janino-2.3.17.jar jcl-over-slf4j-1.6.1.jar log4j-1.2.8.jar logback-access-0.9.24.jar logback-classic-0.9.24.jar logback-core-0.9.24.jar ... slf4j-1.6.1+logback-0.9.24.rar slf4j-api-1.6.1.jar