开发者

SpringBoot日志级别与日志分组详解

目录
  • 日志级别
    • 1、级别内容
    • 2、调整日志级别
      • 调整默认日志级别
      • 调整指定类的日志级别
      • 项目开发过程中,利用日志来测试的小技巧
  • 日志分组

    日志级别

    1、级别内容

    • 从低到高:ALL、TRACE、DEBUG、INFO、WARN、ERROR、FATAL、OFF
      • ALL打印 所有日志
      • TRACE:追踪框架详细流程日志,一般不使用,记录运行到哪一步了
      • DEBUG:开发调试的细节日志
      • INFO:关键、感兴趣消息日志
      • WARN:警告,但不是错误信息,如版本过时等。
      • 从 ERROR 开始包括 ERROR 再往上(从低到高)就是出现错误(导致程序运行不了)的日志了。
      • ERROR:业务错误日志
      • FATAL:致命错误日志
      • OFF关闭 所有日志记录
    • 只会打印指定级别及以上(从低到高)级别的日志,验证演示(打印TRACEERROR,这是开发期间常用的4个日志类型)如下:
      • 要使用log得先导入lombokpython.extern.slf4j.Slf4j,并在开头添加@Slf4j(直接添加@Slf4j会自动导入lombok.extern.slf4j.Slf4j

    编写如下代码:

    package com.atwyb.logging.com.atwyb.logging.controller;
    //package自己的cotroller包路径
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestConthttp://www.devze.comroller;
    @Slf4j
    @RestController
    public class HelloController {
        @GetMapping("/h")
        public String hello(){
            log.trace("trace 日志");
            log.debug("debug 日志");
            log.info("info 日志");
            log.warn("warn 日志");
            log.error("error 日志");
           return "hello";
        }
    }

    启动程序,访问/h后观察到控制台,发现只打印了INFO及以上的日志,因为SpringBoot 默认的日志级别为INFO,所以不打印TRACE、DEBUG

    SpringBoot日志级别与日志分组详解

    2、调整日志级别

    调整默认日志级别

    在SpringBhttp://www.devze.comoot中,可以精确调整某一个类的级别。

    若不调整,所有类都会使用application.propertiselogging.level.root指定的日志级别,如图所示。

    SpringBoot日志级别与日志分组详解

    logging.level.root调整为debug后,运行访问/h后,显示日志为debug,如下图。

    SpringBoot日志级别与日志分组详解

    调整指定类的日志级别

    修改logging.level.*(*为所要修改的包名及路径)即可,修改为warn,如下图。

    SpringBoot日志级别与日志分组详解

    验证,运行项目观察控制台,发现指定包的日志只显示warn及以后的了,其它没调整的都是默认日志等级(前面修改为了debug)。

    SpringBoot日志级别与日志分组详解

    项目开发过程中,利用日志来测试的小技巧

    在项目开发测试过程中,利用常用的log.info,对参数进行验证。

    日志相比于直接在控制台输出,xQgjNwt可以用以下格式

    log.info("info 日志   参数A:{}  参数B:{}",A,B);

    修改前面的代码:

    package com.atwyb.logging.com.atwyb.logging.controller;
    import org.slf4j.LoggerFactory;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    @Slf4j
    @RestController
    public class HelloController {
        @GetMapping("/h")
        public String hello(String A,String B){
       xQgjNwt     log.trace("trace 日志");
            log.debug("debug 日志");
            log.info("info 日志   参数A:{}  参数B:{}",A,B);
            log.warn("warn 日志");
            log.error("error 日志");
           return "hello";
        }
    }

    启动服务器后,访问http://localhost:8080/h?A=1&B=2,传输A、B参数值后,在控制台可以看得到info信息中带有A、B的值。

    SpringBoot日志级别与日志分组详解

    日志分组

    在有多个包需要指定日志类型时,可以通过分组快速指定。

    比如需要指定以下类都为debug

    logging.level.com.a=debug
    logging.level.com.b=debug
    logging.level.com.c=debug
    logging.level.com.d=debug

    可以用以下形式替代

    logging.group.abc=com.a,com.b,com.c,com.d
    logging.level.abc=debug

    SpringBoot 预定义了两个组:web、sql,在可以在application.propertise直接指定。

    到此这篇关于SpringBoot日志级别与日志分组详解的文章就介绍到这了,更多相关SpringBoot日志级别与日志分组内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜