第十二章:SpringBoot使用LogBack做为日志组件

企业级项目在搭建的时候,最不可或缺的一部分就是日志,日志能够用来调试程序,打印运行日志以及错误信息方便于咱们后期对系统的维护,在SpringBoot兴起以前记录日志最出色的莫过于log4j了,对于目前来讲项目还有不少在用log4j来记录日志。那么咱们的SpringBoot是怎么记录日志的?git

SpringBoot内部集成了LogBack日志依赖,SpringBoot默认使用LogBack记录日志信息,默认根据base.xml配置内容来输出到控制台和文件之中,那么接下来说解LogBack是如何记录日志到控制和文件之中?spring

本章目标

学习SpringBoot项目中使用LogBack记录日志到控制台和文件之中,根据不一样的级别输出不一样形式日志信息。app

构建项目

由于SpringBoot内部集成了LogBack因此咱们不须要添加任何依赖,咱们只须要建立一个新的空项目便可。以下图1所示:框架


图1

咱们建立项目是选择的WAR类型,因此自动添加了WEB、Tomcat。这个对咱们的讲解可有可无,由于SpringBoot有默认的配置因此咱们并不须要添加任何操做,如今日志就能够在控制台打印了,为了证明这一点,咱们先来建立一个IndexController而后添加一个访问方法/index,在该方法内添加日志的info级别的打印(默认配置只有Info及以上级别才能够输出),代码以下图2所示:spring-boot


图2

下面咱们来启动项目,访问地址127.0.0.1:8080/index,查看控制台的输出效果,以下图3所示:学习


图3

咱们访问地址后,控制台就对应的输出了info级别的测试日志内容了,上面咱们说了这是logback的默认配置base.xml搞的鬼,那么咱们该如何修改默认配置呢?测试

修改LogBack配置

LogBack读取配置文件的步骤
(1)尝试classpath下查找文件logback-test.xml
(2)若是文件不存在,尝试查找logback.xml
(3)若是两个文件都不存在,LogBack用BasicConfiguration自动对本身进行最小化配置,这样既实现了上面咱们不须要添加任何配置就能够输出到控制台日志信息。spa

接下来咱们在resources目录下建立名叫logback.xml的文件,而且添加日志配置输出到文件内按天存储到不一样的文件之中。具体配置以下图4所示:3d


图4

咱们在logback.xml配置文件中,添加了控制台输出、文件天天输出、日志文件最大上限、日志的最低级别等。下面咱们来运行下项目查看咱们的配置是否起做用了。调试

测试LogBack

修改咱们的IndexController内的index方法并添加多个日志级别的输出,为了方便对照咱们的配置是否生效,以下图5所示:


图5

咱们logback.xml配置文件配置了根输出等级是INFO,因此若是logback.xml生效,那么咱们的控制台以及文件内将不会存在Debug级别的日志输出,咱们重启下项目,访问以前的地址/index查看控制台以及/logs/runtime.xxxx.log配置文件内容,以下图六、7所示:


图6

图7

能够看到正如咱们的推测的通常,Debug级别的日志没有输出,只有INFO以及ERROR级别日志打印并输出到文件中。咱们配置的./logs做为日志的输出根目录,因此LogBack自动在咱们的项目根目录下建立名叫作logs的文件夹,而且项目启动时第一次记录日志时会自动建立根据咱们的命名方式的文件。

屏蔽记录日志

若是咱们在项目中须要屏蔽某个或者多个包下不输出日志也不记录日志到文件内,那么咱们须要修改application.yml添加对应配置,以下图8所示:


图8

能够看到咱们屏蔽了com.yuqiyu.chapter12.controller包下的日志打印,为了方便测试咱们在com.yuqiyu.chapter12包下建立一个名叫TestController的控制器并复制IndexController的没内容以下图9所示:


图9

咱们再来重启下项目,访问127.0.0.1:8080/index地址后再查看下控制台以及日志文件内是否存在日志信息,以下图10所示:


图10

控制台并无打印任何的日志,日志文件中也是如此!咱们再来访问下127.0.0.1:8080/test地址,查看控制台以及日志文件内容,以下图十一、12所示:


图11

图12

能够看到成功打印了日志,证实了咱们的配置已经生效了。固然也能够改变某个包下的日志输出等级,只须要将'OFF'改为对应等级便可。

注意

在application.yml配置文件内,off必须添加双引号,不然不会生效。

总结

以上内容就是有关LogBack配置相关讲解,本章主要讲解了SpringBoot如何使用内置的日志组件完成日志的输出、日志保存到文件、控制日志输出等。

本章内容已经上传到码云:

SpringBoot配套源码地址:gitee.com/hengboy/spr…

SpringCloud配套源码地址:gitee.com/hengboy/spr…

SpringBoot相关系列文章请访问:目录:SpringBoot学习目录

QueryDSL相关系列文章请访问:QueryDSL通用查询框架学习目录

SpringDataJPA相关系列文章请访问:目录:SpringDataJPA学习目录

SpringBoot相关文章请访问:目录:SpringBoot学习目录,感谢阅读!

欢迎加入QQ技术交流群,共同进步。


QQ技术交流群
相关文章
相关标签/搜索