SpringBoot 提高篇(第二篇)

第5章 SpringBoot 日志


文章目录

  • SpringBoot
  • SpringBoot 提高篇(第二篇)
  • 第5章 SpringBoot 日志
  • 5.4 日志格式
  • 5.4.1 日志格式配置
  • 5.4.2 日志格式配置信息
  • 5.4.3 彩色编码输出


5.4 日志格式

在这之前插一嘴,如何获取日志对象

之前的栗子中,

spring5兼容的springboot版本 springboot2.5.4_spring

我们通过这样的方式获取到了日志对象【这种写法其实并不怎么好】

【可以通过注解实现】

  1. 添加lombok 的依赖

<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>

  1. 在类上添加注解
  1. 启动服务器,测试

OK,效果不变。

Spring Boot的默认日志输出类似于下面这个样子:

spring5兼容的springboot版本 springboot2.5.4_开发者_02

这些都是什么?

spring5兼容的springboot版本 springboot2.5.4_java_03

5.4.1 日志格式配置

大致格式:

# 修改⽇志级别
logging:
 # 设置⽇志格式
 pattern:
 # 控制输出的格式
 #格式化输出:%d:表示⽇期 %thread:表示线程名 %-5level:级别从左显示5个字符宽度 %msg:⽇志消息 %n:是换⾏符
 console: "[console]==%d{yyyy-MM-dd HH:mm:ss:SSS} [%thread]
%-5level %logger - %msg%n"
 # ⽂件输出的格式
 file: "[file]===%d{yyyy-MM-dd HH:mm:ss:SSS} [%thread] %-5level
%logger - %msg%n"
5.4.2 日志格式配置信息
  • %d或者%date:指定日志的日期。默认是ISO8601的标准日期,相当于yyyy-MM-dd HH:mm:ss:SSS
  • %level:指定日志的级别:Trace > Debug >Info> Warn> Error
  • %logger:指定日志输出的包名+类名,{n}可以限定长度比如: %logger{50}
  • %M︰指定日志发生时的方法名
  • %L︰指定日志调用时所在的行。线下运行的时候不建议使用此参数,因为获取代码的行号对性能有损耗
  • %m 或者%msg:表示日志的输出的内容
  • %on :日志是否换行
  • %thread:打印线程的名字
5.4.3 彩色编码输出

如果计算机终端支持ANSI,则使用颜色输出来提高可读性。

开发者可以设置spring.output.ansi.enabled为支持的值以覆盖自动检测。

使用%clr转换字配置颜色编码。在最简单的形式中,转换器根据日志级别为输出着色,如以下示例所示:

%clr(%5p)

下表描述了日志级别到颜色的映射:

等级

颜色

FATAL


ERROR


WARN


INFO

绿

DEBUG

绿

TRACE

绿

或者,开发者可以通过将其作为转换选项提供来指定应使用的颜色或样式。

例如,要使文本变黄,使用以下设置:

%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){yellow}

支持以下颜色和样式:

blue cyan faint green magenta red yellow

举个栗子:

spring5兼容的springboot版本 springboot2.5.4_java_04

# 自定义日志格式
pattern:
  console: "%d"

spring5兼容的springboot版本 springboot2.5.4_spring_05

加上换行

# 自定义日志格式
pattern:
  console: "%d %n"

spring5兼容的springboot版本 springboot2.5.4_自定义_06

加上消息

# 自定义日志格式
pattern:
  console: "%d %m %n"

spring5兼容的springboot版本 springboot2.5.4_spring boot_07

加上日志级别

spring5兼容的springboot版本 springboot2.5.4_开发者_08

加上颜色【info 设置为绿色】

spring5兼容的springboot版本 springboot2.5.4_spring_09

加上线程

# 自定义日志格式
pattern:
  console: "%d %clr(%level){grren} --- [%16t] %m %n"

spring5兼容的springboot版本 springboot2.5.4_spring_10

OK。