日志框架与日志系统

转载:https://www.cnblogs.com/huahua035/p/8022010.html

日志系统:

日志的具体实现。经典的有:

  • log4j
  • JDK Logging;
  • 还有log4j作者推出的被高度评价的logBack等等;

日志框架:

如果只存在一种日志系统,日志框架完全没有必要存在(logBack无法独立使用),但事与愿违。为了解决多个日志系统的兼容问题,日志框架应运而生。主流的日志框架有:

  • commons-logging
  • sl4j
commons-logging:

commons-logging是apache推出的日志框架,commons-logging只是规定了日志的接口规范,默认情况下,Commons Loggin自动搜索并使用Log4j。主流的日志系统都实现了commons-logging定义的接口,common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。

commons-logging定义了6个日志级别(默认是INFO级别),从大到小是:

  • FATAL
  • ERROR
  • WARNING
  • INFO
  • DEBUG
  • TRACE

Commons-logging+log4j 是经典的一个日志实现方案,常见的代码如下:

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

// 在静态方法中引用Log:
public class Main {
    static final Log log = LogFactory.getLog(Main.class);

    static void foo() {
        log.info("foo");
    }
}
// 在实例方法中引用Log:
public class Person {
    protected final Log log = LogFactory.getLog(getClass());

    void foo() {
        log.info("foo");
    }
}

注意到实例变量log的获取方式是LogFactory.getLog(getClass()),虽然也可以用LogFactory.getLog(Person.class),但是前一种方式有个非常大的好处,就是子类可以直接使用该log实例。例如:

// 在子类中使用父类实例化的log:
public class Student extends Person {
    void bar() {
        log.info("bar");
    }
}

sl4j:

slf4j全称为Simple Logging Facade for JAVA,java简单日志门面。
类似于Apache Common-Logging,是对不同日志框架提供的一个门面封装,可以在部署的时候不修改任何配置即可接入一种日志实现方案。但是,他在编译时静态绑定真正的Log库。使用SLF4J时,如果你需要使用某一种日志实现,那么你必须选择正确的SLF4J的jar包的集合

logback+sl4j也是经典的一个日志实现方案。Logback作为一个通用可靠、快速灵活的日志框架,将作为Log4j 的替代和SLF4J 组成新的日志系统的完整实现。Logback必须配合sl4j使用。由于logback和sl4j是同一个作者,其兼容性不言而喻。但sl4j面临与其他日志框架和日志系统的兼容性问题。常见代码如下:

import org.slf4j.Logger;  
import org.slf4j.LoggerFactory;  
  
public class A {  
    private static Log logger = LogFactory.getLog(this.getClass());  
} 

常用的级别:

  • FATAL
  • ERROR
  • WARNING
  • INFO
  • DEBUG
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值