1 SpringBoot日志介绍
本文介绍日志如何实现自定义输出,介绍日志的级别和使用
2 实现自定义日志打印
程序员自定义打印日志主要有两个步骤:
1 在程序中得到日志对象
2 使用日志对象的相关语法输出要打印的内容
2.1 得到日志对象
使用日志工厂函数LoggerFactory:
private static Logger logger = LoggerFactory.getLogger(UserController.class);
日志工厂函数中需要我们传递一个类的类型,方便知道日志的归属,发现、定位问题所在。注意Logger对象是org.slf4j包下的。(
import org.slf4j.Logger; import org.slf4j.LoggerFactory;
)
SpringBoot中是内置了slf4j的,所以不用我们再手动的去添加依赖,我的maven中是没有添加slf4j的依赖但是项目中已经加入了所需要的maven:
2.2 使用日志打印对象
@RequestMapping("getall")public List<UserEntity> getAll() {userLogger.info("=============这是userController中的info===========");return userService.getAll();}
当后端接收到请求后就会在后端打印出刚才自定义的日志信息:
2.3 日志格式说明
3 日志级别
- ⽇志级别可以帮你筛选出重要的信息,⽐如设置⽇志级别为 error,那么就可以只看程序的报错⽇志了,对于普通的调试⽇志和业务⽇志就可以忽略了,从⽽节省开发者信息筛选的时间。
- ⽇志级别可以控制不同环境下,⼀个程序是否需要打印⽇志,如开发环境我们需要很详细的信息,⽽⽣产环境为了保证性能和安全性就会输⼊尽量少的⽇志,⽽通过⽇志的级别就可以实现此需求。
3.1 日志级别以及使用
日志级别分为:
-
TRACE: 最详细的日志级别,通常用于记录一些非常详细的调试信息,例如方法的入参、出参等。
-
DEBUG: 用于记录调试信息,可以帮助你诊断问题。通常会记录一些关键操作的详细信息,但不会像TRACE级别那样详细。
-
INFO: 用于记录应用程序的一般运行状态,比如启动信息、关键事件等。这是默认的日志级别。
-
WARN: 用于记录一些可能的异常情况,这些情况不会影响应用程序的正常运行,但可能需要注意。
-
ERROR: 用于记录错误信息,表示应用程序发生了一些错误或异常。这些错误可能会影响应用程序的正常运行。
-
FATAL: 用于记录严重的错误,通常表示应用程序已经无法继续运行。
1-6这六种级别是按照日志级别排列的,级别越高收到的日志信息就越少,比如设置的是error级别的日志,那么就只能收到error和fetal级别的日志信息。
3.2 日志级别的设置
日志级别设置需要在配置文件中设置:
# 设置根日志级别
logging:level:root: INFO# 设置特定包的日志级别
logging:level:org.springframework: DEBUGcom.example: TRACE
可以设置根日志的级别也可以设置特定的包的日志级别。
现在设置根日志的级别是error看看是否还能看到info级别的日志:
启动项目后发现控制台没有任何日志信息,后端接收到请求后自定义的info级别信息也看不见
那么将自定义的日志级别换成error和fetal呢?
结果是可以看到控制台输出了error的日志