Slf4j与Log4j的区别

前言

在开发过程中使用日志库打印信息是必不可少,我之前在开发学习的过程中使用的多数是Log4j,而现在大多数程序员使用的都是Slf4j,于是就研究了一下两者的区别。

一、区别介绍

Log4j 全称为Log for java,Slf4j 全称是simple log facade for java。两者最本质的区别可以简单描述为:

Log4j 可以看成是一个完整的日志库,可以通过Log4j的配置文件灵活配置日志的记录格式、记录级别、输出格式等,而不需要修改已有的日志记录代码。

Slf4j 则是日志库的一个统一规范接口,说到接口,可能很多朋友就明白了为什么会选择Slf4j了。

那就说说使用Slf4j接口的好处:
1.解耦:
使用接口最大的作用就是解耦,当我们使用Log4j这个日志库处理日志信息时,就与其特定的类库发生了耦合,而日志库还有java.util.logging、logback等等,想象一下,若你的项目使用的是Log4j,当哪天你的项目需要引入别人编写的一个组件,而这个组件却是使用logback处理日志的,那我们就不得不导入两个实现同样功能的jar包并且维护两套日志配置了。
这时候就体现出Slf4j统一规范接口的价值了,因为Slf4j只是一个接口,我们只是通过调用slf4j接口的日志方法统一打印日志,可以忽略日志的具体实现方法,这样,即使我们的系统换了一个日志源,不需要我们去更改代码。这样我们就达到了降低日志和项目之间的耦合度的目的。

2.占位符
Slf4j打印日志的时候可以使用占位符" {} ",而Log4j这些传统的日志系统里面并没有占位符的概念,只能使用拼接字符串的方式,甚至往往需要创建没有用的String对象。

    private void log4jTest(){
        String msg = "something error happen...";
        logger.info("错误信息为:" + msg);
    }
    private void slf4jTest(){
    log.info("错误信息为:{}","something error happen...");
    }

二、使用Slf4j

现在的项目想使用Slf4j或者Log4j很简单,只需要安装Lombok插件,然后在需要使用日志的类上使用@Slf4j注解就可以了

1.安装lombok
File —> Settings —> Plugins 然后搜索Lombok即可找到
在这里插入图片描述
2.导入依赖

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<optional>true</optional>
</dependency>

注意此处optional填写true,代表这个包不需要打包发布,仅编译时需要用到

3.重启IDE

  • 12
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值