
这个就是我们在控制台输出的日志信息
⽇志是程序的重要组成部分,想象⼀下,如果程序报错了,不让你打开控制台看⽇志,那么你能找到
报错的原因吗?答案是否定的,写程序不是买彩票,不能完全靠猜,因此⽇志对于我们来说,最主要
的⽤途就是排除和定位问题。
当然日志在实际开发中还有许多功能:
需要两步操作:

访问下这个页面


日志就打印出来了。
⽇志的级别分为:


注意:因为日志级别默认是info级别的,所以低于此级别的日志是不会打印出来的,我们也可以设置日志默认级别。

运行后立即访问刚刚那个网站然后停止项目运行,否则你可能会找不到~

yml写法

properties写法:这个只是演示,后面我把这个删了,因为这个优先级高嘛,但是日常中我们使用yml其实更方便一点,因为有提示。


这个似乎只能通过properties设置了,yml似乎会报错


经过比较得出局部日志级别优先级高于全局。
以上的⽇志都是输出在控制台上的,然⽽在⽣产环境上咱们需要将⽇志保存下来,以便出现问题之后
追溯问题,把⽇志保存下来的过程就叫做持久化。
想要将⽇志进⾏持久化,只需要在配置⽂件中指定⽇志的存储⽬录或者是指定⽇志保存⽂件名之后,
Spring Boot 就会将控制台的⽇志写到相应的⽬录或⽂件下了。
配置⽇志⽂件的保存路径:

路径可使用\\或者一个/.


重启一次后,在此观察日志文件:

可以看到日志是通过追加方式进行写文件的,而不是覆盖。默认一个日志文件大小是10mb.
当然我们也可以修改:





在target目录下我们可以看到并没有@Slf4j而是变成了我们之前写的类似代码。
这是因为JVM并不认识Java代码,只认识.class文件,而target就是idea将源代码转成的二进制文件,只不过被idea包装了一
下,变成了让我们也能看的懂得Java代码。
因此我们可以得出一个过程:idea先将源代码转化为一个个字节码文件,再交由JVM处理。而这也给了lombok可乘之机,
在编译期就可以将一些注解生成想要的代码。
| 注解 | 作⽤ |
|---|---|
| @Getter | ⾃动添加 getter ⽅法 |
| @Setter | ⾃动添加 setter ⽅法 |
| @ToString | ⾃动添加 toString ⽅法 |
| @EqualsAndHashCode | ⾃动添加 equals 和 hashCode ⽅法 |
| @NoArgsConstructor | ⾃动添加⽆参构造⽅法 |
| @AllArgsConstructor | ⾃动添加全属性构造⽅法,顺序按照属性的定义顺序 |
| @NonNull | 属性不能为 null |
| @RequiredArgsConstructor | ⾃动添加必需属性的构造⽅法,final + @NonNull 的属性为必需 |
| @Data | @Getter + @Setter + @ToString +@EqualsAndHashCode +@RequiredArgsConstructor +@NoArgsConstructor |
|---|
| @Slf4j | 添加⼀个名为 log 的⽇志,使⽤ slf4j |
|---|