前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第十二章:SpringBoot使用LogBack作为日志组件

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

作者头像
恒宇少年
发布2018-06-27 15:16:07
6760
发布2018-06-27 15:16:07
举报

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

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

本章目标

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

构建项目

因为SpringBoot内部集成了LogBack所以我们不需要添加任何依赖,我们只需要创建一个新的空项目即可。如下图1所示:

图1

我们创建项目是选择的WAR类型,所以自动添加了WEB、Tomcat。这个对我们的讲解无关紧要,因为SpringBoot有默认的配置所以我们并不需要添加任何操作,现在日志就可以在控制台打印了,为了证实这一点,我们先来创建一个IndexController然后添加一个访问方法/index,在该方法内添加日志的info级别的打印(默认配置只有Info及以上级别才可以输出),代码如下图2所示:

图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自动对自己进行最小化配置,这样既实现了上面我们不需要添加任何配置就可以输出到控制台日志信息。

接下来我们在resources目录下创建名叫logback.xml的文件,并且添加日志配置输出到文件内按天存储到不同的文件之中。具体配置如下图4所示:

图4

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

测试LogBack

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

图5

我们logback.xml配置文件配置了根输出等级是INFO,所以如果logback.xml生效,那么我们的控制台以及文件内将不会存在Debug级别的日志输出,我们重启下项目,访问之前的地址/index查看控制台以及/logs/runtime.xxxx.log配置文件内容,如下图6、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地址,查看控制台以及日志文件内容,如下图11、12所示:

图11

图12

可以看到成功打印了日志,证明了我们的配置已经生效了。当然也可以改变某个包下的日志输出等级,只需要将'OFF'改成对应等级即可。

注意

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

总结

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

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

SpringBoot配套源码地址:https://gitee.com/hengboy/spring-boot-chapter

SpringCloud配套源码地址:https://gitee.com/hengboy/spring-cloud-chapter

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

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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.04.13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本章目标
  • 构建项目
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档