0
点赞
收藏
分享

微信扫一扫

link 样式表是否会阻塞页面内容的展示?取决于浏览器,edge 和 chrome 会,但 firefox 不会。

一、前言

不知道大家注意过没有,在Spring Boot项目启动过程中日志打印并没有显示完整的报名,而是显示一些o.a.co.s.web形式的包名,如下图:

在这里插入图片描述

这是为什么呢?

二、原理

首先,我们先看一下Spring Boot项目中默认的日志格式配置。

找到spring-boot包,找到org/springframework/boot/logging/logback/defaults.xml文件,查看管控端日志输出格式的配置CONSOLE_LOG_PATTERN内容:

<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>

Logback常用的pattern日志格式占位符说明网上说明有很多,这里我们不再赘述,主要关注一下%-40.40logger{39}%logger用于输出日志事件的类的全限定类名,%-40.40logger{39}就有点特殊了,它表示输出最多39个字符的日志记录器名称,如果超过则在左侧截断以保证总长度不超过40个字符。

三、扩展

知道原理以后,我们想启动日志显示完整包名就知道该怎么做了,只需要覆盖默认的CONSOLE_LOG_PATTERN日志格式就行了。

通过在application.yaml配置文件中配置logging.pattern.console属性进行日志格式覆盖:

logging:
  pattern:
    console: '${CONSOLE_LOG_PATTERN:%clr(%d{${LOG_DATEFORMAT_PATTERN:yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:%5p}) %clr(${PID: }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%logger){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:%wEx}}'

重新启动,发现日志打印时全限定类名已经可以完整显示了:

在这里插入图片描述

举报

相关推荐

0 条评论