SpringBoot之日志框架的介绍与简单使用

目录

1.SpringBoot中的日志框架简单原理

2.日志框架的使用

2.1采用默认日志框架slf4j+logback

    2.1.1导入依赖

    2.1.2 日志的简单使用

2.2 使用其他日志框架,以slf4j+log4j为例

    2.2.1 导入依赖

    2.2.2 简单使用

3.结语


1.SpringBoot中的日志框架简单原理

        SpringBoot之所以可以自动适配各种日志框架,是因为它的内部逻辑依赖了不同的jar包,其依赖关系,你们也可以自己在idea中查看依赖关系树,这里我提供一个简单的图示:

        通过上图可发现SpringBoot的日志抽象层是slf4j,其日志具体实现是通过各个日志框架;另外,我们可以看到SpringBoot通过log4j-to-slf4j.jar来适配log4j日志框架,通过jul-to-slf4j来适配jul日志框架,所以,当你需要使用log4j日志框架的时候,你就要引入log4j-to-slf4j.jar

        而SpringBoot默认采用的是slf4j(抽象)+logback(实现),logback是log4j的新开发框架,而且天然支持slf4j,其性能上的优越,就不多说了,这个组合在当下非常合适,SpringBoot还是很机智的。

2.日志框架的使用

2.1采用默认日志框架slf4j+logback

    2.1.1导入依赖

        首先在pom文件中引入依赖如下

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-logging</artifactId>
</dependency>

        其实在实际开发中不需要直接添加该依赖,因为在spring-boot-starter中包含了spring-boot-starter-logging,而该依赖默认为slf4j+logback;现在大多数的开发都为web开发,也可以直接引入spring-boot-starter-web,该依赖包含spring-boot-start,另外给大家拓展一下,spring-boot-starter-web依赖还包含tomcat依赖和mvc和jackson的依赖,前两个不用多说,大家都懂,最后这个依赖正解释了Springboot的web开发用Responsebody注解时,可以不用再添加josn相关依赖就能直接返回json格式结果的问题

        我就拿web项目为例了,在pom文件直接导入依赖(只展示跟日志有关的依赖):

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

        此时便可以直接使用日志了 

    2.1.2 日志的简单使用

        1. 直接上图了,这是最简单的日志使用的方法,而这种将Logger作为成员变量声明然后去使用的方法还可以通过@Slf4j注解代替,后续再谈。

        2. Logger是 org.slf4j.Logger类型,上面提到过,在SpringBoot中调用的是日志抽象层slf4j的api,具体实现则是通过具体的日志框架例如logback实现了org.slf4j.Logger的info方法。

        3.  Logback日志级别从低到高分别为trace、debug、info、warn、error,默认情况下,只输出info及以上的,trace、debug级别的不输出,所以上图只有三个级别的日志打印在了控制台。

2.2 使用其他日志框架,以slf4j+log4j为例

    2.2.1 导入依赖

        因为Springboot默认采用了logback框架,所以我们选择使用其他框架的时候首先要将Springboot默认的框架屏蔽掉,如下:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <!-- 排除自带的logback依赖 -->
        <exclusion>
        	<groupId>org.springframework.boot</groupId>
        	<artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

        然后导入log4j依赖,别忘了要把 slf4j的依赖和log4j-to-slf4j.jar导入,如下:

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.21</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.21</version>
</dependency>

         此时就可以使用slf4j+log4j啦

    2.2.2 简单使用

        1. 简单配置log4j.properties

log4j.rootLogger=INFO, stdout
##################################

log4j.appender.stdout = org.apache.log4j.ConsoleAppender #控制台
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern = %d{DATE}%-4r[%t]%-5p%c%x-%m%n #输出格式

         2. 跟2.1.2一样使用,如下图所示:

3.结语

        到这里,SpringBoot日志框架的简单介绍就结束了,本文只介绍了简单的原理及最基本的使用,深层次的介绍例如logback、log4j配置文件的详细介绍后续再谈,本篇文章就不涉及了。感兴趣的小伙伴可以百度搜索日志框架配置文件详解啦~~ 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值