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就可以解决。

posted @ 2021-07-09 18:57  zhanglw  阅读(591)  评论(0)    收藏  举报