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


    我们为啥要用日志?

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

    为什么是SLF4J?

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

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

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

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

    SLF4J让你的代码独立于任何特定的日志记录API,可以让我们的程序更加的健壮,不会让你因为不同日志的实现而导致的问题去分心。

    使用SLF4J的另外一个理由就是,它可以支持占位符

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

    这段程序在运行时刻才会拿到name这不仅缩减了代码中的许多字符串连接,而且减少了创建String对象所需要的堆内存资源

    怎么使用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,不要选错了哟。

    配合Lombok使用@Slf4j

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

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

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

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

    然后,我们在项目中就可以这样去使用:

    @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生效!

    公众号

    原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。

  • 相关阅读:
    腾讯开源 APIJSON 连创五个第一
    最火的分布式 HTAP 数据库 TiDB
    完爆Facebook/GraphQL,APIJSON全方位对比解析(三)-表关联查询
    后端自动化版本管理,再也不用改URL了!
    后端开挂:3行代码写出8个接口!
    3步创建服务端新表及配置
    Activity猫的一生-故事解说Activity生命周期
    APIJSON-以坚持和偏执,回敬傲慢和偏见
    APIJSON,让接口和文档见鬼去吧!
    Android 100多个Styles快速开发布局XML,一行搞定View属性,一键统一配置UI...
  • 原文地址:https://www.cnblogs.com/viyoung/p/10253482.html
Copyright © 2020-2023  润新知