springboot 日志
https://www.cnblogs.com/sanye613/p/13345483.html
https://www.cnblogs.com/huanzi-qch/p/11041300.html
logback详解:https://blog.csdn.net/qq_36850813/article/details/108569093
https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.logging
默认 Spring Boot 采用了 slf4j+logback 的组合日志形式。不需要额外引入日志包,springboot 自动包含日志依赖
Spring Boot也提供对JUL、log4j2 提供了默认配置。
slf4j 是日志门面, logback 是具体的日志库
1、日志级别
日志级别有(从高到低):FATAL(致命),ERROR(错误),WARN(警告),INFO(信息),DEBUG(调试),TRACE(跟踪)或者 OFF(关闭),默认的日志配置在消息写入时将消息回显到控制台。默认情况下,将记录错误级别、警告级别和信息级别的消息
默认日志级别是 info
2、 日志设置
# 开启com.example.mapper包的日志级别debug
# 其中“logging.level.”为前缀,“com.example.mapper”为Mapper接口所在的包路径。对应的value值为日志的级别
logging:
file:
name: ./logs/${spring.application.name}.log
level:
com.example.example:info
com.example.example.mapper: debug
日志必须要指定包路径,不然会报错。
包路径也可以直接是 root:logging.level.root=debug, logging.level.com.example=debug。设置为 root 会打印更多信息
日志路径:
| logging.file.name | logging.file.path | 示例 | 说明 |
|---|---|---|---|
| (none) | (none) | 只在控制台输出 | |
| 指定文件名 | (none) | demo.log | 输出到当前项目根路径下的 demo.log 文件中 |
| (none) | 指定目录 | logs/log_lzy | 输出到当前项目所在磁盘根路径下的/logs/log_lzy目录中的 spring.log 文件中 |
| 指定文件名 | 指定目录 | 当两个同时指定时,采用的是logging.file.name 指定。推荐使用logging.file.name 设置即可,因为它可自定义文件名 |
3、 日志使用
@RequestMapping
@RestController
public class LogController {
private static final Logger logger = LoggerFactory.getLogger(LogController.class);
@GetMapping("/log")
public String logTest1(String name) {
logger.info("------------info--------------{}",name);
logger.error("------------error--------------{}",name);
logger.debug("------------debug--------------{}",name);
logger.trace("------------trace--------------{}",name);
logger.warn("------------warn--------------{}",name);
return "log test..."+name;
}
}
如果引入了 lombok , 则可使用注解 @Slf4j,直接使用 log 实例
@Slf4j
@RequestMapping
@RestController
public class LogController {
@GetMapping("/log")
public String logTest1(String name) {
log.info("------------info--------------{}",name);
log.error("------------error--------------{}",name);
log.debug("------------debug--------------{}",name);
log.trace("------------trace--------------{}",name);
log.warn("------------warn--------------{}",name);
return "log test..."+name;
}
}
4、自定义logback日志
在类路径下,存放对应日志框架的自定义配置文件即可;SpringBoot就不会使用它默认的日志配置文件了
| Logging System | Customization |
|---|---|
| Logback | logback-spring.xml, logback-spring.groovy, logback.xml, or logback.groovy |
| Log4j2 | log4j2-spring.xml or log4j2.xml |
| JDK (Java Util Logging) | logging.properties |
logback.xml :是直接就被日志框架加载了。
logback-spring.xml:配置项不会被日志框架直接加载,而是由 SpringBoot 解析日志配置文件
logback.xml加载早于application.properties,所以如果你在logback.xml使用了变量时,而恰好这个变量是写在application.properties时,那么就会获取不到,只要改成logback-spring.xml就可以解决。

浙公网安备 33010602011771号