• spring boot --接入@SLF4J日志


    前言

      目前比较流行的日志框架有log4j、logback等,可能大家还不知道,这两个框架的作者是同一个人,Logback旨在作为流行的log4j项目的后续版本,从而恢复log4j离开的位置。另外 slf4j(Simple Logging Facade for Java) 则是一个日志门面框架,提供了日志系统中常用的接口,logback 和 log4j 则对slf4j 进行了实现,等于说slf4j 是一个规范接口,你可以通过它调用logback 和 log4j的实现功能

      为什么选择slf4j?

      1.spring boot核心库集成了slf4j 框架,不需要在pom.xml中再引入

      2.使用的人多

      3.logback 和 log4j 则对slf4j 进行了实现,等于说slf4j是一个规范,整合了log4j和logback

    使用

      spring boot中slf4j会有一些默认配置,在没有要求(比如自定义日志输出模板,自定义日志放置目录)的情况下,我们可以直接使用

    @RestController
    public class Index {
    
        //通过LoggerFactory类,获取到日志类的实例对象
        private final Logger log = LoggerFactory.getLogger(Index.class); //注意Logger和LoggerFactory类是处于org.slf4j命名空间下
    
        @RequestMapping("login")
        public Object index() {
            log.info("info");//输出消息日志
            log.warn("warning");//输出警告日志
            log.error("error");//输出错误日志
    return "end"; } }

       上面的代码执行后,就可以看到idea的控制台内,会出现三条对应的日志消息。而在C:Users登录用户~1AppDataLocalTemp目录下也会生成对应的日志文件(名字是一堆hash字符)

    配置日志自定义输出

      如果我们想定义日志的输出格式和输出位置,那么就需要进行相应配置

      配置日志文件输出路径

        在application.yml中添加配置

    spring:
    ......
    logging: //与spring同级 file: name: logs
    /log.log //指定输出日志目录

      配置日志输出格式

        在application.yml中增加配置

    spring:
    ......
    logging: //与spring同级
     # file:
       # name: logs/log.log //去除日志输出配置
      config: classpath:log.config.xml //指定slf4j配置文件,我们可以在这里面配置日志输出目录,同一个库的配置尽量放在一块

        在log.config.xml中配置

          ... @slf4j配置详解

    使用@SLF4J注解

      每次使用Logger,都需要通过LoggerFactory去获取Logger实例比较麻烦

    private final Logger log = LoggerFactory.getLogger(当前类.class);

      可以使用@SLF4J

    @Slf4j //注解当前类
    @RestController

    public class TestController { @RequestMapping("login")public String index(){ log.debug("可以直接调用log打印日志了"); return "testPrint"; } }

      使用@SLF4J需要几个步骤

        1.idea下载安装lombok插件,(2021版本后的idea一般都捆绑安装了,高版本的idea可以省略此步骤)

          lombok简介:java自动生成代码的插件。它能提高开发效率,减少自己编写繁琐的代码,让代码看起来更整洁简略,比如getter、setter、equals以及construct等方法。其也有val、var这种自动判断变量类型的变量定义方式(类似javascript中的let、const)

          lombok安装:https://www.cnblogs.com/sxdcgaq8080/p/7884477.html

          lombok详解:https://blog.csdn.net/qq_28851503/article/details/80961759

        2.pom.xml引入lombok的包

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

        3.然后就可以愉快的使用@SLF4J注解了

    @Slf4j //注解当前类
    @RestController
    
    public class TestController { @RequestMapping("login") public String index(){ log.debug("可以直接调用log打印日志了"); return "testPrint"; } }
  • 相关阅读:
    设置ios中imageView图片自适应,
    IOS应用之间调用
    XCode debug中添加查找debug和控制台的办法
    初学Java scirpt(判断、循环语句)
    Java Script 字符串操作
    初学 Java Script (算数运算及逻辑术语)
    Ubuntu 配置JDK
    SQL Server 跨库复制表方法小笔记
    Ubuntu 重装 mysql
    Java Script 数组操作
  • 原文地址:https://www.cnblogs.com/wrhbk/p/15245714.html
Copyright © 2020-2023  润新知