LOGBack小结

本文介绍了SLF4J、Log4j和Logback之间的区别及其应用场景。SLF4J作为日志门面接口,允许用户在部署时选择所需日志系统;Logback作为Log4j的替代品,在性能上有显著提升。文章还讨论了如何避免日志配置冲突。

之前一直用log4j,工作后接触到logback,顺便总结一下

参考http://blog.youkuaiyun.com/conquer0715/article/details/9365491

基础

SLF4J不是具体的日志解决方案,它只服务于各种日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统,并可以灵活切换。
首先了解一下SLF4J、Log4j和LOGBack的区别:
首先,这3个都是同一个作者开发的,其中LOGBack用来替代log4j,SLF4J用来替代Commons-logging。

Commons-logging
Apache最早提供的日志门面接口。避免和具体的日志方案直接耦合。类似于JDBC 的api 接口,具体的JDBC driver 实现由各数据库提供商实现。通过统一接口解耦,不过其内部也实现了一些简单日志方案。

SLF4J
全称为Simple Logging Facade for JAVA:java简单日志门面。SLF4J提供一个日志接口,你可以使用不同的类来实现该接口,Log4j和LogBack就是不同的实现。

Log4j
Apache的一个开放源代码项目,使用Log4j可以控制日志信息输送目的地、、输出格式、生成过程等。是一种经典的日志解决方案。内部把日志系统抽象封装成Logger 、appender 、pattern 等实现。可以通过配置文件轻松的实现日志系统的管理和多样化配置。

LOGBack
Logback是另一个开源日记组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。其中logback-core是其它两个模块的基础模块,logback-classic是log4j的改良,logback-classic完整实现SLF4J API,使你可以方便地更换成其它日志系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能。

Log4J vs. LOGBack
LOGBack作为一个通用可靠、快速灵活的日志框架,将作为Log4j的替代和SLF4J组成新的日志系统的完整实现。总的来说就是速度更快,性能更好。官网上称LOGBack在关键路径上执行速度是log4j 的10 倍,且内存消耗更少。具体优势见:http://logback.qos.ch/reasonsToSwitch.html
此外,LOGBack的所有文档都是免费提供的,不象Log4J那样只提供部分免费文档而需要用户去购买付费文档。

需要注意
使用日志配置的时候一定要明白需求,同时避免冲突。
如使用SLF4j 的时候为了避免冲突,一定要保障只有一种实现类jar包在里面。
有任意两个实现slf4j 的包同时出现,那就有可能酿就悲剧,你可能会发现日志不见了、或都打到控制台了。原因是这两个jar包里都有各自的org.slf4j.impl.StaticLoggerBinder,编译时候绑定的是哪个是不确定的。这个地方要特别注意!!!

用法小结

  1. 下载地址:
    slf4j: http://www.slf4j.org/download.html
    logback: http://logback.qos.ch/download.html

  2. 需要的配置文件和组件包,下面三个 jar 文件和一个 xml文件都是要放在项目的 ClassPath 上。
      slf4j-api-1.5.11.jar
      logback-core-0.9.20.jar
      logback-classic-0.9.20.jar
      logback.xml 或 logback-test.xml (类似于 log4j.properties/log4j.xml)
    Logback 先找 logback-test.xml,没有则找 logback.xml 文件,都找不到就使用 BasicConfigurator 基本配置,BasicConfigurator 就是相当于等会贴出的 logback.xml 文件内容的配置。这里我们用 logback.xml 配置文件,以前的 log4j.properties 文件可以用 PropertiesTranslator 转换成 logback.xml 文件内容。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值