目录
一、日志的作用
日志是一个程序的重要组成部分,日志最重要的作用就是发现和定位问题。
日志的其他作用:
(1) 记录用户登录日志,方便分析用户是正常登录还是恶意破解用户;
(2) 记录系统的操作日志,方便数据恢复和定位操作人;
(3) 记录程序的执行时间,方便为以后优化程序提供数据支持。
二、日志的使用
2.1 日志的打印
2.1.1 获取日志对象
要想打印日志的前提是要有一个日志对象,日志对象来自于LoggerFactory类中:
注意:此处的Logger和LoggerFactory类都是来自于Slf4j包底下的类。
2.1.2 使用日志对象打印日志
日志对象中有很多打印日志的(重载)方法,此处演示一些常用的方法:
代码运行结果:
2.1.3 日志格式说明
2.2 日志的级别
上面实例代码中logFunc方法里,我们调用了5个打印日志的方法,但是在代码运行结果中,却只打印了3个,这个问题就和日志的级别有关了~
2.2.1 日志级别的作用
(1) 日志级别可以帮我们筛选重要的信息。比如设置日志级别为error,那么就只会打印error或以上级别的日志,低于error级别的日志都不会被打印。
(2) 日志级别可以控制不同环境中需要打印的日志。比如A类中需要打印error或以上级别的日志,B类中需要打印info或以上级别的日志。
2.2.2 日志级别的分类
日志级别由低到高的分类:
· trace:最低级别的日志
· debug:需要调试的时候的关键信息打印
· info:普通的打印信息(默认级别)
· warn:警告信息,不影响程序运行,但需要注意的问题
· error:错误信息,级别较高的错误日志信息
· fatal:致命的,代码异常导致程序退出执行的事件
级别越高,收到的信息越少。
2.2.3 日志级别的设置
设置日志级别,只需要在配置文件中设置"logging.level"配置项即可:
当我们把全局的日志级别设置为error,而把DemoController中的日志级别设置为trace后,再次运行程序:
可以发现,Spring Boot一开始打印的info日志没有再被打印,而DemoController中的5个级别的日志都被打印出来了~
三、日志持久化
一般情况下,日志都是输出在控制台上的,当我们重新运行程序后,日志也就消失了,而实际开发中,往往需要把日志保存到硬盘中,保存日志的过程就叫做日志持久化。
只需要在配置文件中,指定日志的存储目录或指定日志存储的文件后,Spring Boot就会将控制台的日志写到相应的目录或文件中,并且重新启动程序时,文件中的内容不会被覆盖~
3.1 配置保存日志的目录:
当我们启动程序后,该目录下就会生成一个日志文件:
文件中的内容正是控制台打印的日志:
3.2 配置保存日志的文件名:
当我们运行程序后,Spring Boot就会把控制台的日志写到该文件中:
四、使用lombok输出日志
上面创建日志对象的方式还是比较麻烦的,如果程序中的类比较多的话,每个类都需要创建一个日志对象,就很繁琐,此时我们可以借助lombok中的@Slf4j注解来更简单的输出日志。