0


SpringBoot进阶-日志等级配置与操作

SpringBoot进阶-日志等级配置与操作

一、日志等级

  1. trace:最低等级
  2. debug:调试用,通常用于跟踪程序进展
  3. info: 记录用,通常用于记录程序行为
  4. warn:警告
  5. error:错误
  6. fatal:灾难性错误,最高等级

二、设置日志等级

SpringBoot 默认日志等级为 info,也就是说只在控制台输出 info 或更高等级的日志

在开发阶段如果想临时地更改日志等级进行调试,可以使用下面这个简单的配置:

debug:true

真正要设置项目日志等级则要这样:

logging:level:root: info
    com.mzz.example.controller: debug
    com.mzz.example.service: debug

日志的等级是根据组或包来设置的,其中 root 组即为整个项目

但以包为单位设置日志等级很麻烦,所以可以自己设置组别,然后为每组分别设置等级:

logging:group:server: com.mzz.example.service, com.mzz.example.controller
    sql: com.mzz.example.mapper
  level:root: info
    server: debug
    sql: trace

三、打印日志

打印日志首先要获取日志对象,如下:

@RestController@RequestMapping("/user")publicclassUserController{publicstaticfinalLogger log =LoggerFactory.getLogger(BookController.class);}

由于这行代码写法比较固定,可以用 Lombok 中的 @Slf4j 注解代替,如下:

@Slf4j@RestController@RequestMapping("/user")publicclassUserController{}

拿到日志对象后,调用方法即可打印日志,各个等级作为方法名即可打印对应等级的日志:

@Slf4j@RestController@RequestMapping("/user")publicclassUserController{@AutowiredprivateIUserService userService;@PostMappingpublicResultsave(@RequestBodyUser user){
        log.debug("尝试保存新用户:{}", user);boolean flag = bookService.save(user);if(!flag){
            log.error("保存新用户失败:{}", user);}else{
            log.info("已保存新用户:{}", user);}returnResult.success();}}

打印日志时,{} 可以作为占位符,数组在之后传入

另外,没有 fatal 等级的日志打印方法,因为 fatal 是指会使程序崩溃的严重错误,程序崩溃日志系统自然无法继续运行,所以打印 fatal 级别的日志没有意义

四、自定义日志格式

设置 logging.pattern.console 属性可以自定义控制台打印日志的格式,如下:

logging:pattern:console:"%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n"

上为 SpringBoot 默认的日志格式,参考自:https://blog.csdn.net/qq_34049732/article/details/116722116

五、文件记录日志

看如下示例:

logging:file:name: log/server.log    # 指定文件名称以及路径:启动路径下的 log 文件夹下#    path: log/    # 指定日志文件路径,不含名称,默认为 spring.loglogback:rollingpolicy:max-file-size: 1MB    # 指定文件最大规格file-name-pattern: log/server_%d{yyyy-MM-dd}_%i.log    # 指定文件名称格式以及路径

滚动日志可以设置每个日志的最大大小

设置滚动日志也依然要设置日志名称,如上的 server.log,里面是最近的日志

logging.file.name 和 logging.file.path 只需配置一个,若同时存在,则 path 无效

标签: spring boot java spring

本文转载自: https://blog.csdn.net/Cey_Tao/article/details/127572412
版权归原作者 槐阳7 所有, 如有侵权,请联系我们删除。

“SpringBoot进阶-日志等级配置与操作”的评论:

还没有评论