为什么要用slf4j日志框架 (slf4j+log4j)

引用:https://blog.csdn.net/PanPa_WoNiu/article/details/81179644

目录

一、概述

二、slf4j优势

三、slf4j的使用方法以及实现原理


一、概述

  slf4j(全称是Simple Loging Facade For Java)是一个为Java程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就好像我们经常使用的JDBC一样,只是一种规则而已。因此单独的slf4j是不能工作的,它必须搭配其他具体的日志实现方案,比如commons-logginglogback、  apache的org.apache.log4j.Logger,jdk自带的java.util.logging.Logger等等。

  其中对于jar包:

    slf4j-log4j12-x.x.x.jar是使用org.apache.log4j.Logger提供的驱动

    slf4j-jdk14-x.x.x.jar是使用java.util.logging提供的驱动

    slf4j-simple-x.x.x.jar直接绑定System.err

    slf4j-jcl-x.x.x.jar是使用commons-logging提供的驱动

    logback-classic-x.x.x.jar是使用logback提供的驱动

二、slf4j优势

  1.与客户端很好的解耦

    比如:我们发现了一位大牛开发了一个非常好而且又刚好能够满足自己需求的类库,类库里使用了apacheorg.apache.log4j.Logger,然而你自己的程序在开发的时候使用的是jdk自带的java.util.logging.Logger,那么现在忧伤的问题来了:如果你想要使用,你是不是需要同时支持log4j和jdk两种日志系统?这样的话,你就需要添加两个实现同样功能的jar包并且维护两套日志配置,你是不是需要耗费更多的精力来进行维护?此时宝宝心里苦,宝宝不说。比如这位大牛开发的就是quartz,如果不使用slf4j的情况下使用quartz就是需要你本地系统维护它的日志配置,你还得维护自己原来的日志配置,这这怎么维护啊。所以还是使用上slf4j吧,这样你还是只使用本地原来的日志配置就能维护quartz了。

  2.节省内存

    log4j这些传统的日志系统里面并没有占位符的概念,当我们需要打印信息的时候,我们是这样使用:

 package com.hafiz.zhang;
 
 import org.apache.log4j.Logger;
 
 public class TestLog4j {
 private static final Logger LOGGER = Logger.getLogger(TestLog4j.class);
 
 public static void main(String[] args) {
         String message = "服务器出错啦.";
         LOGGER.info("Error message is : " + message);
     }
 }

查看源码,我们发现了log4j的info函数有两种方式可供选择:

1 public void info(Object   me

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值