MYBATIS02_Slf4j、logback日志框架的演变、如何简单的使用

本文介绍了日志框架从无到有的发展历程,包括log4j、JU、Jboss-logging、SLF4J和Logback的出现。SLF4J作为一个门面,允许开发者选择不同的日志实现。Logback作为具体实现,与SLF4J配合使用。同时,文章展示了如何在项目中引入SLF4J和Logback的依赖,配置日志级别以及编写测试代码进行日志输出。
摘要由CSDN通过智能技术生成

①. 日志框架的演变

  • ①. 1.4之前,没有任何的日志框架。项目中都是通过System.out.prinln(“”)进行输出内容,有一个工程师小明,考虑如下几种情况:
  1. 将日志按照级别输入,按照包或者类来输入
  2. 将日志输入到文件中,能不能按照日期或者文件大小来进行归档
  3. 自定义格式,让日志更美观
  • ②. 经过代码的开发,开源了log4j框架,所有的开发人员都可以维护这个框架,后面被apache收购

  • ③. JDK也想开发自己的日志框架,经过研发的努力,开发出了JU(java.util.logging)框架、后面也有很多的日志框架如:Jboss­logging

  • ④. 小明这个时候想把市面上的日志框架做一个集成,于是开发出了slf4j框架,slf4j不实现日志功能,我们可以把它理解成一个门面
    JDK当然也不甘,自己开发出了JCL(jakarta common logging),毕竟slf4j比较早好用,最终slf4j占据主导地位

  • ⑤. 小明基于这个log4j开发出来一个logback(相当于门面具体的商家)
    这个时候,apache也不甘示弱,开发了一个log4j2的框架

②. 如何简单的使用

  • ①. 导入依赖
	<!-- log start -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.30</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
    <!-- log end -->
  • ②. 主要有两种获取Logger方式
    Logger最好作为类的静态变量 使用,推荐使用第二种,最好加final关键字来修饰
private Logger logger = LoggerFactory.getLogger(getClass());
private static Logger logger = LoggerFactory.getLogger(JdbcUtil.class);
  • ③. 各级别的排序为:TRACE < DEBUG < INFO < WARN < ERROR(默认是DEBUG级别)

  • ④. 代码测试

    @Test
    public void test(){
        //默认级别是debug,大于等于debug的都会输出
        logger.trace("跟踪级别");
        logger.debug("调试级别");
        logger.info("信息级别");
        logger.warn("警告级别");
        logger.error("异常级别");
    }

在这里插入图片描述

  • ⑤. 在resource下新建logback.文件
<configuration>
    <!--
        appender 追加器 日志以哪种方式进行输出
        name 取个名字
        class不同实现类会输出到不同地方
        ch.qos.logback.core.ConsoleAppender 输出到控制台 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{100} - %msg%n</pattern>
        </encoder>
    </appender>
    <!--com.xiaozhi.mapper -->
    <!--控制跟细粒度的日志级别 根据包\根据类-->
    <logger name="com.xiaozhi.mapper" level="info"></logger>
         org.apache.ibatis.transaction
    <root level="debug">
    <!-- 将当前日志级别输出到哪个追加器上面 -->
    <appender-ref ref="STDOUT" />
    </root>
</configuration>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

所得皆惊喜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值