Spring Boot系列之十 日志配置

来源:
每日新闻头条
最后修订:
2017-03-21 21:48:58

摘要:求关注求收藏求转发求评论(咱们可以瞎扯)哥哥姐姐们,我想转正啊,但是头条号指数不够, 啊哈哈. 谢谢咯.简介本文主要介绍下Spring Boot 对日志的配置管理和结合`springProfile` ...

求关注求收藏求转发求评论(咱们可以瞎扯)

哥哥姐姐们,我想转正啊,但是头条号指数不够, 啊哈哈. 谢谢咯.

简介

本文主要介绍下Spring Boot 对日志的配置管理和结合`springProfile` 实现多环境logback日志配置.

Spring Boot 日志配置

Spring Boot默认为Java Util Logging,Log4j,Logback提供自动化配置.默认情况下,Spring Boot会将`ERROR,WARN和INFO级别`的日志打印在控制台,我们也可以配置其打印在文件里.

默认的日志格式

Spring Boot系列之十 日志配置

屏幕太小,一行显示不开..大家伙凑合着看吧..

  • 其输出的内容包括:

  • 日期和时间- 精确到毫秒,且易于排序。

  • 日志级别 - ERROR, WARN, INFO, DEBUG 或 TRACE。

  • Process ID。

  • 一个用于区分实际日志信息开头的---分隔符。

  • 线程名 - 包括在方括号中(控制台输出可能会被截断)。

  • 日志名 - 通常是源class的类名(缩写)。

  • 日志信息。

配置日志信息输出到文件和日志级别

  • 只配置`logging.file`属性

Spring Boot系列之十 日志配置

  • 只配置`logging.path`属性

Spring Boot系列之十 日志配置

  • 日志文件切割

默认情况下,Spring Boot对日志文件每10M进行一次切割.

  • 日志级别配置

Spring Boot系列之十 日志配置

将`cn.veryjava`包的日志打印级别设置为error之后,对比默认的日志输出,你会发现,控制台少打印了`cn.veryjava`包下的日志信息.

自定义日志配置

由于日志的配置文件是在Spring Context加载之前进行加载的,所以我们无法使用`@Configuration`来控制日志的配置.

Spring Boot在启动时会检查`src/main/resources/`目录或者通过`logging.config`属性指定的位置,通过不同的文件名区分使用不同的日志系统.

通常情况,日志文件名和日志系统对应关系如下:

Spring Boot系列之十 日志配置

`springProfile`多环境logback配置

由于我们要使用的是spring提供的profile功能,因此需要在上述介绍基础上修改配置文件的文件名为`logback-spring.xml`

  • logback-spring.xml

Spring Boot系列之十 日志配置

Spring Boot系列之十 日志配置

其中,利用`<springProfile>`的`name`属性来区分不同的环境,其余跟正常配置一样.

在test环境启动

在IDE中设置`spring.profiles.active=test`或者直接命令行使用`java -jar log.jar --spring.profiles.active=test`

查看控制台输出和文件输出,发现,控制台仅仅只显示banner,而日志输出文件中则显示剩余全部内容.

代码

本文限于篇幅原因,不能展示所有的代码,如果想要完整的代码示例,请移步 https://github.com/sunshineasbefore/veryjava.spring.boot/tree/master/log

支持请点赞,不喜勿喷.

每天一点点,成长多一点.