Spring Boot(二十六)日志详解!

本文详细介绍了Spring Boot的日志系统,包括日志输出内容、配置项设置、自定义日志配置。内容涵盖控制台输出、彩色日志、文件输出、日志级别、日志组和配置项详解。并探讨了如何通过logback配置文件实现更高级的自定义日志功能。
摘要由CSDN通过智能技术生成

Springboot版本:2.1.1

一、日志输出内容

Spring Boot 的默认日志输出类似于以下示例:

2021-06-05 15:58:02.532  INFO 168344 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/boot]   : Initializing Spring embedded WebApplicationContext
2021-06-05 15:58:02.533  INFO 168344 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1172 ms
2021-06-05 15:58:02.593  INFO 168344 --- [           main] c.a.d.s.b.a.DruidDataSourceAutoConfigure : Init DruidDataSource
2021-06-05 15:58:02.648  WARN 168344 --- [           main] c.a.druid.pool.DruidAbstractDataSource   : oracle.jdbc.driver.OracleDriver is deprecated.Having use oracle.jdbc.OracleDriver.
2021-06-05 15:58:02.702  WARN 168344 --- [           main] com.alibaba.druid.pool.DruidDataSource   : removeAbandoned is true, not use in production.
2021-06-05 15:58:02.871  INFO 168344 --- [           main] com.alibaba.druid.pool.DruidDataSource   : {
   dataSource-1} inited
2021-06-05 15:58:03.243  INFO 168344 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2021-06-05 15:58:03.548  INFO 168344 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path '/boot'
2021-06-05 15:58:03.551  INFO 168344 --- [           main] com.boot.BootApplication                 : Started BootApplication in 2.605 seconds (JVM running for 3.115)

日志输出以下内容:

  • 日期和时间:毫秒精度且易于排序。
  • 日志级别:ERRORWARNINFODEBUG,或TRACE
  • 进程标识。
  • 一个---分隔符来区分实际日志消息的开始。
  • 线程名称:括在方括号中(可能会被截断以用于控制台输出)。
  • 记录器名称:这通常是日志输出的类名(通常缩写)。
  • 日志消息。

二、配置项进行日志配置

1、控制台输出

控制台默认情况下,会记录ERRORWARNINFO 级别的消息。可以通过使用–debug来启动应用程序的“debug”模式,也可以在配置文件里添加配置项debug=true。

$ java -jar bootDemo.jar --debug
debug=true

启用调试模式时,将配置一组核心记录器(嵌入式容器、Hibernate和Springboot)以输出更多信息。启用调试模式不会将应用程序的日志级别配置为debug来记录所有日志。

2、定制彩色日志

如果你的终端支持 ANSI,则使用彩色日志输出来提高可读性。可以设置 spring.output.ansi.enabled支持的值以覆盖自动检测。

说明
ALWAYS 启用 ANSI 彩色输出。
DETECT 尝试检测 ANSI 着色功能是否可用。
NEVER 禁用 ANSI 颜色的输出。

另外需在logback-spring.xml中加入如下配置:

<include resource="org/springframework/boot/logging/logback/defaults.xml" />

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

%clr(%d{
   yy-MM-dd hh-mm-ss.SSS})
%clr(%d{
   yy-MM-dd hh-mm-ss.SSS}){
   yellow}
//好像直接用%后面接颜色也可以,如下:
%yellow(%d{
   yy-MM-dd hh-mm-ss.SSS})

下面是示例:

%clr(%d{
   yy-MM-dd hh-mm-ss.SSS}){
   yellow} [%clr(%t){
   magenta}] [%clr(%p)] %clr(%C{
   1}.%M:%L) |%clr(%m%n){
   blue}

输出效果如下:
在这里插入图片描述
其中类名跟方法名还有行数是根据日志等级对应的颜色进行着色的,所以,如果有报错一眼就能看到报错的类跟方法还有所在行数。

下表描述了日志级别所对应的颜色:

等级 颜色
FATAL 红色
ERROR 红色
WARN 黄色
INFO 绿色
DEBUG
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值