Spring Boot 2.x(八):日志框架的选择和使用

咱们为啥要用日志?

最初咱们开始接触Java的时候,咱们一般会使用System.out.println()将咱们想要知道的信息打印到控制台。
可是,若是在服务器上咱们去运行咱们的Java程序,这个时候就凸显了日志对于一个系统来讲的重要性,查找异常信息、分析系统运行状况等都须要用到日志。java

为何是SLF4J?

默认状况下,Spring Boot会用SLF4J + Logback来记录日志,并用INFO级别输出到控制台。spring

SLF4J,即简单日志门面(Simple Logging Facade for Java),它能够看作是一个接口框架,并不提供具体的实现,具体的实现由相似于 Log4jLog4j2Logback等等这样的日志框架去完成。

咱们为何要在实际的应用中去使用SLF4J的API呢?
在阿里巴巴的开发手册上也给咱们明确【强制】规定了服务器

clipboard.png

而百度百科上也给出了相应的解释:app

clipboard.png

SLF4J让你的代码独立于任何特定的日志记录API,可让咱们的程序更加的健壮,不会让你由于不一样日志的实现而致使的问题去分心。框架

使用SLF4J的另一个理由就是,它能够支持占位符spring-boot

String name = "Vi";
logger.debug("My Name is {}", name);

这段程序在运行时刻才会拿到name这不只缩减了代码中的许多字符串链接,并且减小了建立String对象所须要的堆内存资源spa

怎么使用SLF4J?

若是咱们在一个Spring Boot 的程序中去使用SLF4J,咱们不须要去引入其余的包,由于咱们引入的有关spring-boot-starter中就已经包含了有关slf4j的jar包。咱们只须要经过LoggerFactory去获取便可:插件

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
...
private static final Logger logger = LoggerFactory.getLogger(ResponseAop.class);

这里须要注意看咱们选择的是否是slf4j包下的Logger,不要选错了哟。debug

配合Lombok使用@Slf4j

首先在pom.xml中添加Lombok的依赖:日志

<dependency>
           <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

而后打开IDEA的设置项,在Plugins中查找:

clipboard.png

clipboard.png

注意安装插件后记得重启使其生效!

而后,咱们在项目中就能够这样去使用:

@Slf4j
public class Slf4JTest {
    public static void main(String[] args) {
        log.info("This is a Slf4jTest");
    }
}

关于日志的配置

这里我就偷个懒,由于网上一搜一大堆,可是实际上你用的时候仍是要根据本身的项目的状况进行使用的(你能够关注我,我会在后面的项目实战中去配置,并给出源码)。

这里须要注意一点:默认状况下,Spring Boot将日志输出到控制台,不会写到日志文件。若是要编写除控制台输出以外的日志文件,则需在application.yml中设置 logging.filelogging.path属性。可是这俩属性同时配置的时候,只有 logging.file生效!

公众号

clipboard.png

原创文章,文笔有限,才疏学浅,文中如有不正之处,万望告知。
相关文章
相关标签/搜索