目录
一、默认日志
日志文件的作用:
可以帮助我们记录信息,打印错误信息等,可以方便于后续使用
Spring boot默认打印的日志:
日志发生时间 + INFO(日志级别)+ 打印日志的线程id + 打印日志的线程名称 + 打印日志的包 + 日志内容
二、自定义日志打印
🎈通过日志工厂得到日志对象
🎈通过日志对象提供的方法打印日志
@RestController
public class LoginController {
//1.得到日志对象
private static Logger log=
LoggerFactory.getLogger(LoginController.class);//为了打印的时候输出位置
@RequestMapping("/log")
public void log(){
String msg = "今天周五";
//以下都是打印日志的api
log.trace("trace: "+msg);
log.debug("debug: "+msg);
log.info("info: "+msg);
log.warn("warn: "+msg);
log.error("error: "+msg);
}
}
打印的日志如下:
三、日志的级别
日志级别(从低到高)(trace -> fatal):
trace:微量、少许、痕迹,日志级别最低
debug:调试日志级别
info:普通的日志级别,默认的日志级别
warn:警告日志级别
error:错误日志级别
fatal:致命的日志级别,只有系统在崩溃时才会输出的日志级别,级别最高。
当设置了某个级别以后,就只能看见等于或者大于该级别的日志了。
# 在properties文件下面设置日志级别
# 当前项目默认的日志级别
logging.level.root=warn
# 给文件夹Controller单独设置日志级别
logging.level.com.example.demo.controller=debug
日志级别的作用:过滤信息,将业务不需要的日志级别屏蔽掉。
为什么Spring Boot可以打印日志?并且设置日志级别?
答:因为Spring Boot内置了两个日志框架:SLF4J + LogBack
LogBack:最底层实现日志相关操作的框架
SLF4J:上层让开发者调用的日志框架。
四、日志持久化(将日志保存到磁盘)
# 设置日志的保存路径,双斜杠
logging.file.path=D:\\...\\.....
# 设置日志的保存文件名,如果没有加路径就会默认保存在项目路径中
logging.file.name=springboot.log
logging.file.name=D:\\...\\...\\springboot.log
五、lombok在日志中的使用
lombok是Java语言中非常实用的Java框架。
🎈前置工作
安装lombook,在settings -> plugings中安装即可,以下图标,也可能是一个辣椒的图标
🎈在项目中安装lombok依赖
🎈使用lombok的方式编写代码
以下是lombok中的 一些方法注解
使用@setter和@getter
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter //表示当前类里面的属性都有get和set方法了,是Lombok中的注解
public class Student {
private int id;
private String name;
private String password;
}
使用组合注解@Data
@Data组合注解包括:@Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor + @NoArgsConstructor
@Data
public class Student {
private int id;
private String name;
private String password;
}
🎈使用lombok更加简单的输出日志
对比普通的输出日志,使用Lombok更加简单
@RestController
@Slf4j
public class LogController {
@RequestMapping("/log")
public void log(){
log.trace("trace: log");
log.debug("debug: log");
log.info("info: loh");
log.warn("warn: log");
log.error("error: log");
}
}
🎈lombok的实现原理
通过lombok注解,在编译.java文件以后,会通过注解,生成响应的代码,比如Getter和Setter代码。
实现原理:
lombok在代码编译器(.java -> .class)代码的时候将Lombok的注解转换成对应的代码