Java日志系统之Slf4j

目录

Slf4j

Slf4j的简单使用

Slf4j的日志绑定流程

Slf4j桥接器


Slf4j

Slf4j又称简单日志门面,Slf4j主要是为了给Java日志访问提供一套标准,规范的API框架,其主要意义在于提供接口,具体的实现可以交由其他的日志框架。

Slf4j的简单使用

Slf4j本身也提供一个简单的日志系统,但通常不用。通常slf4j与其他日志框架绑定使用。

Slf4j的出现时间比Log4j与JUL晚,因此它们两个的接口没有根据Slf4j的文档来,因此需要多引入一个适配器来使用。像logback等日志框架出现较晚,根据Slf4j的接口实现,因此直接引入该框架就好。

下面使用JUL来测试Slf4j。引入下列依赖包。

    <dependencies>
        <!--日志门户-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.5.6</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-jdk14</artifactId>
            <version>1.5.6</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

测试

    public final static Logger logger = LoggerFactory.getLogger(TestSlf4j.class);
    @Test
    public void testJUL() throws Exception {
        logger.error("error");
        logger.info("info");
        logger.debug("debug");
        logger.trace("trace");
    }

Slf4j的日志绑定流程

  • 添加slf4j-api的依赖
  • 使用slf4j的API在项目中进行统一的日志管理
  • 绑定具体的日志实现框架(JUL与Log4j需要引入适配器依赖)
  • slf4j有且仅有一个日志实现框架,如果有多个默认使用第一个

Slf4j桥接器

当项目初始时使用了Log4j日志框架时,后续项目扩展需要换logback日志框架,如果只是单纯的更换依赖,则仍需要修改代码。此时我们就需要使用桥接器来解决这个问题。

首先是初始项目中,我们只用了log4j的日志框架就可以满足使用了

后续中,我们要对项目进行迭代升级,需要使用logback日志框架。如果不添加桥接器依赖的话。如下如图所示

在原始代码中,会有错误提示。找不到类

这时我们就需要引入对应的桥接器依赖

此时迭代过后的项目也不会报错,且使用的日志框架为logback

注意问题

1.jcl-over-slf4j.jar和 slf4j-jcl.jar不能同时部署。前一个jar文件将导致JCL将日志系统的选择委托给SLF4J,后一个jar文件将导致SLF4J将日志系统的选择委托给JCL,从而导致无限循环。

2.log4j-over-slf4j.jar和slf4j-log4j12.jar不能同时出现

3.jul-to-slf4j.jar和slf4j-jdk14.jar不能同时出现

4.所有的桥接都只对Logger日志记录器对象有效,如果程序中调用了内部的配置类或者是Appender,Filter等对象,将无法产生效果。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zmbwcx2003

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值