本文主要是介绍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
:关闭 所有日志记录
- 只会打印指定级别及以上(从低到高)级别的日志,验证演示(打印
TRACE
到ERROR
,这是开发期间常用的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
2、调整日志级别
调整默认日志级别
在SpringBhttp://www.chinasem.cnoot中,可以精确调整某一个类的级别。
若不调整,所有类都会使用application.propertise
中logging.level.root
指定的日志级别,如图所示。
将logging.level.root
调整为debug
后,运行访问/h
后,显示日志为debug
,如下图。
调整指定类的日志级别
修改logging.level.*
(*为所要修改的包名及路径)即可,修改为warn,如下图。
验证,运行项目观察控制台,发现指定包的日志只显示warn及以后
的了,其它没调整的都是默认日志等级(前面修改为了debug
)。
项目开发过程中,利用日志来测试的小技巧
在项目开发测试过程中,利用常用的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的值。
日志分组
在有多个包需要指定日志类型时,可以通过分组快速指定。
比如需要指定以下类都为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日志级别与日志分组详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!