SpringBoot日志级别与日志分组详解

2025-08-30 14:50

本文主要是介绍SpringBoot日志级别与日志分组详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或...

日志级别

1、级别内容

  • 从低到高:ALL、TRACE、DEBUG、INFO、WARN、ERROR、FATAL、OFF
    • ALL打印 所有日志
    • TRACE:追踪框架详细流程日志,一般不使用,记录运行到哪一步了
    • DEBUG:开发调试的细节日志
    • INFO:关键、感兴趣消息日志
    • WARN:警告,但不是错误信息,如版本过时等。
    • 从 ERROR 开始包括 ERROR 再往上(从低到高)就是出现错误(导致程序运行不了)的日志了。
    • ERROR:业务错误日志
    • FATAL:致命错误日志
    • OFF关闭 所有日志记录
  • 只会打印指定级别及以上(从低到高)级别的日志,验证演示(打印TRACEERROR,这是开发期间常用的4个日志类型)如下:
    • 要使用log得先导入lombokpython.extern.slf4j.Slf4j,并在开头添加@Slf4j(直接添加@Slf4j会自动导入lombok.extern.slf4j.Slf4j

编写如下代码:

package com.atwyb.logging.com.atwyb.logging.controller;
//package自己的cotroller包路径
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestConthttp://www.chinasem.cnroller;
@Slf4j
@RestController
public class HelloController {
    @GetMapping("/h")
    public String hello(){
        log.trace("trace 日志");
        log.debug("debug 日志");
        log.info("info 日志");
        log.warn("warn 日志");
        log.error("error 日志");
       return "hello";
    }
}

启动程序,访问/h后观察到控制台,发现只打印了INFO及以上的日志,因为SpringBoot 默认的日志级别为INFO,所以不打印TRACE、DEBUG

SpringBoot日志级别与日志分组详解

2、调整日志级别

调整默认日志级别

在SpringBhttp://www.chinasem.cnoot中,可以精确调整某一个类的级别。
若不调整,所有类都会使用application.propertiselogging.level.root指定的日志级别,如图所示。

SpringBoot日志级别与日志分组详解

logging.level.root调整为debug后,运行访问/h后,显示日志为debug,如下图。

SpringBoot日志级别与日志分组详解

调整指定类的日志级别

修改logging.level.*(*为所要修改的包名及路径)即可,修改为warn,如下图。

SpringBoot日志级别与日志分组详解

验证,运行项目观察控制台,发现指定包的日志只显示warn及以后的了,其它没调整的都是默认日志等级(前面修改为了debug)。

SpringBoot日志级别与日志分组详解

项目开发过程中,利用日志来测试的小技巧

在项目开发测试过程中,利用常用的log.info,对参数进行验证。
日志相比于直接在控制台输出,xQgjNwt可以用以下格式

log.info("info 日志   参数A:{}  参数B:{}",A,B);

修改前面的代码:

package com.atwyb.logging.com.atwyb.logging.controller;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
public class HelloController {
    @GetMapping("/h")
    public String hello(String A,String B){
   xQgjNwt     log.trace("trace 日志");
        log.debug("debug 日志");
        log.info("info 日志   参数A:{}  参数B:{}",A,B);
        log.warn("warn 日志");
        log.error("error 日志");
       return "hello";
    }
}

启动服务器后,访问http://localhost:8080/h?A=1&B=2,传输A、B参数值后,在控制台可以看得到info信息中带有A、B的值。

SpringBoot日志级别与日志分组详解

日志分组

在有多个包需要指定日志类型时,可以通过分组快速指定。

比如需要指定以下类都为debug

logging.level.com.a=debug
logging.level.com.b=debug
logging.level.com.c=debug
logging.level.com.d=debug

可以用以下形式替代

logging.group.abc=com.a,com.b,com.c,com.d
logging.level.abc=debug

SpringBoot 预定义了两个组:web、sql,在可以在application.propertise直接指定。

到此这篇关于SpringBoot日志级别与日志分组详解的文章就介绍到这了,更多相关SpringBoot日志级别与日志分组内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!

这篇关于SpringBoot日志级别与日志分组详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1155884

相关文章

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

详解python pycharm与cmd中制表符不一样

《详解pythonpycharm与cmd中制表符不一样》本文主要介绍了pythonpycharm与cmd中制表符不一样,这个问题通常是因为PyCharm和命令行(CMD)使用的制表符(tab)的宽... 这个问题通常是因为PyCharm和命令行(CMD)使用的制表符(tab)的宽度不同导致的。在PyChar

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1