下面简单介绍下Springboot如何使用日志
1. 添加依赖(可不加)
#web容器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
#devtools小工具(我用于用于热部署)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
#lombok(推荐)
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
#测试(随意)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
2、配置日志
解释:说明一下日志文件的名字,存储地方,等级
注意:请你把名字前的路径写全了,防止出错,细细看过文档可以不这么做(等级可以不写)
server:
port: 1314
#设置日志级别
logging:
file:
path: /Users/admin/Desktop/springboot/springboot03/src/main/java/com/sunjiahui/springboot03/log/
name: /Users/admin/Desktop/springboot/springboot03/src/main/java/com/sunjiahui/springboot03/log/springboot03.log
level:
springboot.springboot03.src.main.java.com.sunjiahui.springboot03.log: error
3. 实现日志打印
注意:导包不要错了
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
思路:
创建日志对象就要先在日志工厂中得到它,映射对应当前类
如何只需要改调用就能打印日志了
package com.sunjiahui.springboot03.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author 孙膑
* @Date 2022/8/19
*/
@RestController
public class LoggerController {
//1.得到日志对像
private static Logger logger = LoggerFactory.getLogger(LoggerController.class);
@RequestMapping("/logger01")
public String logger01(){
//2.使用日志打印
logger.trace("trace");
logger.debug("debug");
logger.info("logger01:info");
logger.warn("warn");
logger.error("error");
return "logger01:打印成功!";
}
/**
* trace:微量,少许的意思,级别最低;
* info:普通的打印信息;
* debug:需要调试时候的关键信息打印;
* warn:警告,不影响使⽤,但需要注意的问题;
* error:错误信息,级别较⾼的错误⽇志信息;
* fatal:致命的,因为代码异常导致程序退出执⾏的事件。
*/
}
4.lombok实现日志打印
看过上面例子就懂了,创建对象很麻烦,因此依赖中应用lombok
插件后就可以用@Slf4j
代替创建对象可,实质是一样的。该注解写在需要打印日志的类上。
package com.sunjiahui.springboot03.controller;
import com.sunjiahui.springboot03.pojo.Student;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author 孙膑
* @Date 2022/8/19
*/
@RestController
@Slf4j
/**
* @Slf4j 等同于 private static Logger logger = LoggerFactory.getLogger(Logger02Controller.class); 可以看字节码发现
*/
public class Logger02Controller {
@RequestMapping("/logger02")
public String logger02(@RequestParam(value = "name",defaultValue = "false") String name,
@RequestParam(value = "age",defaultValue = "false") Integer age){
if(null == name || null == age){
log.warn("[创建对象] 参数缺失 name={},age={}",age,name);
return "参数缺失";
}
log.info("[创建对象] 设置属性 name={},age={}",name,age);
Student stu1 = new Student(name,age);
log.error("[创建对象] 装填数据 stu1={}",stu1);
if(age<=18){
log.warn("[创建对象] 未成年人警告:stu1={},警告年龄:age={} ",stu1,stu1.getAge());
}
return "logger02:打印成功!";
}
}
你仔细观察可以发现
log.info("[创建对象] 设置属性 name={},age={}",name,age);
不是单纯的打印文字的,name={} 对应的就是name
我们一起看看效果吧~
(运行后在浏览器上传参是一样的,工具不会用没事儿!)
结果:看蓝框~
源码+笔记:点我跳转