【Spring Boot学习二】日志文件

目录

1、自定义输出日志

 2、日志级别

2.1 日志级别分类(6种)

2.2 配置日志级别(在.yml文件中设置:)

(1)设置日志整体级别

(2)分目录设置日志级别

3、日志怎么持久化

3.1 设置日志文件名和路径(.yml文件下配置)

 3.2 对日志分割:每隔多少M分割

4、更简单的日志输出-lombok(对1的优化)​

5、补充:lombok 更多注解说明


问题1:为什么要学习日志文件?

很简单,代码出Bug了,第一时间肯定是看日志观察报错信息呀~就像去医院看病,不知道是什么病,就先去拍个片子,才能找症状所在。所以日志的作用就是:发现和定位问题。

问题2:目前日志存在的问题?

(1)日志没有持久化(所以要保存在硬盘上)

 ⽇志默认是打印在控制台上的,⽽控制台的⽇志是不能被保存的。

(2)日志没有详细的信息。

【Spring Boot学习二】日志文件_第1张图片

 SpringBoot为什么能打印日志,是因为Spring Boot 内置了⽇志框架(不然也输出不了⽇志))

1、自定义输出日志

Logger 对象是属于 org.slf4j 包下的,不要导⼊错包。

【Spring Boot学习二】日志文件_第2张图片

【Spring Boot学习二】日志文件_第3张图片 主程序: 

【Spring Boot学习二】日志文件_第4张图片

 执行结果:

因为 Spring Boot 中内置了⽇志框架 Slf4j,所以咱们可以直接在程序中调⽤ slf4j 来输出⽇志。。

【Spring Boot学习二】日志文件_第5张图片

 2、日志级别

        ⽇志级别可以帮你筛选出重要的信息,⽇志级别可以控制不同环境下,⼀个程序是否需要打印⽇志,如开发环境我们需要很详细的信息,⽽⽣产环境为了保证性能和安全性就会输⼊尽量少的⽇志,⽽通过⽇志的级别就可以实现此需求。

        日志打印过多过少都不适合:过多影响系统性能,过少不利于查找问题。

2.1 日志级别分类(6种)

⽇志的级别分为:

  • trace:微量,少许的意思,级别最低;
  • debug:需要调试时候的关键信息打印;
  • info:普通的打印信息(默认⽇志级别);
  • warn:警告,不影响使⽤,但需要注意的问题;
  • error:错误信息,级别较⾼的错误⽇志信息;(通常需要我们解决)
  • fatal:致命的,因为代码异常导致程序退出执⾏的事件。

【Spring Boot学习二】日志文件_第6张图片

设置了 warn 就只能收到 warn、error、fatal 级别的⽇志了。

Spring项目默认的日志级别是info,低于info的不打印,高于info的打印。

【Spring Boot学习二】日志文件_第7张图片

2.2 配置日志级别(在.yml文件中设置:

(1)设置日志整体级别

【Spring Boot学习二】日志文件_第8张图片

 此时打印结果:只有warn级别以上的。

 (2)分目录设置日志级别

【Spring Boot学习二】日志文件_第9张图片

 打印结果:demo2中打印的是debug以上的;root根目录下,在demo1下打印的是warn以上的。

3、日志怎么持久化

以上的⽇志都是输出在控制台上的,然⽽在实际中需要将⽇志保存下来,这个过程就叫做持久化。
日志持久化的解决办法:设置日志的保存路径。

3.1 设置日志文件名和路径(.yml文件下配置)

【Spring Boot学习二】日志文件_第10张图片

如果没有日志,就按如下清空缓存后刷新。 

【Spring Boot学习二】日志文件_第11张图片

 3.2 对日志分割:每隔多少M分割

【Spring Boot学习二】日志文件_第12张图片

因为都是在yml文件下的logging下配置,所以可以将上述信息写在一个logging下。

4、更简单的日志输出-lombok(对1的优化)

【Spring Boot学习二】日志文件_第13张图片

 执行结果

 原因:看target下的编译文件:默认名称就是log。

【Spring Boot学习二】日志文件_第14张图片

 原因分析:原先的代码编译过程:

【Spring Boot学习二】日志文件_第15张图片

 Lombok 的作⽤如下图所示:

【Spring Boot学习二】日志文件_第16张图片

5、补充:lombok 更多注解说明

(1)基本注解

注解 作用
@Getter 自动添加 getter 法
@Setter 自动添加 setter 法
@ToString 自动添加 toString 法
@EqualsAndHashCode 自动添加 equals 和 hashCode 法
@NoArgsConstructor 自动添加参构造法
@AllArgsConstructor 自动添加全属性构造法,顺序按照属性的定义顺序
@NonNull 属性不能为 null
@RequiredArgsConstructor 自动添加必需属性的构造法,final + @NonNull 的
属性为必需

【Spring Boot学习二】日志文件_第17张图片

(2)组合注解:我们前一节写Student类的时候,就用到这个@Data注解来生成get和set方法。

注解
@Data @Getter + @Setter + @ToString +
@EqualsAndHashCode +
@RequiredArgsConstructor +
@NoArgsConstructor

(3)⽇志注解@SIF4j : 添加一个名字为log的日志。(见4)


【Spring Boot学习二】日志文件_第18张图片

 

你可能感兴趣的:(Spring学习,学习)