SpringBoot日志基本操作

266 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第8天,点击查看活动详情

1. 代码中使用日志工具记录日志

  1. 添加日志记录操作
@RestController
@RequestMapping("/books")
public class BookController {

    private static final Logger log = LoggerFactory.getLogger(BookController.class);

    @GetMapping
    public String getById(){
        System.out.println("hello spring boot!");


        log.debug("debug...");
        log.info("info...");
        log.warn("warn...");
        log.error("error...");

        return "hello spring boot!";
    }
}

在这里插入图片描述 在这里插入图片描述 日志级别

  • TRACE:运行堆栈信息,使用率低
  • DEBUG:程序员调试代码使用
  • INFO:记录运维过程数据
  • WARN:记录运维过程报警数据
  • ERROR:记录错误堆栈信息
  • FATAL:灾难信息,合并计入ERROR
  1. 设置日志输出级别
# 开启debug模式,输出调试信息,常用于检查系统运行状况
debug: true
# 设置日志级别,root表示根节点,即整体应用日志级别
logging:
  level:
    root: debug
  1. 设置日志组,控制指定包对应的日志输出级别,也可以直接控制指定包对应的日志输出级别
logging:
  group:
    ebank: com.xdr630.controller,com.xdr630.service,com.xdr630.dao
    isserver: com.alibaba
  level:
    root: info
    #设置某个包的日志级别
    com.xdr630.controller: debug
    # 设置分组,对某个组设置日志级别
    ebank: warn

2. 小节

  1. 日志用于记录开发调试与运维过程消息
  2. 日志的级别共6种,通常使用4种即可,分别是 DEBUG,INFO,WARN,ERROR
  3. 可以通过日志组或代码包的形式进行日志显示级别的控制

3. 优化日志对象创建代码

  • 使用lombok提供的注解@Slf4j简化开发,减少日志对象的声明操作 在这里插入图片描述

4. 日志输出格式控制

在这里插入图片描述

  • PID:进程ID,用于表明当前操作所处的进程,当多服务同时记录日志时,该值可用于协助程序员调试程序
  • 所属类/接口名:当前显示信息为SpringBoot重写后的信息,名称过长时,简化包名书写为首字母,甚至直接删除 日志输出格式控制

5. 日志输出格式控制

  • 日志输出格式控制
logging:
 # 设置日志输出格式
  pattern:
    console: "%d - %m %n"

%d:日期 %m:消息 %n:换行

在这里插入图片描述

logging:
  # 设置日志输出格式
  pattern:
    console: "%d %clr(%5p) --- [%16t] %clr(%-40.40c){cyan} : %m %n"

在这里插入图片描述

6. 设置日志文件

  • 设置日志文件
logging:
  file:
    name: server.log

在这里插入图片描述 在这里插入图片描述

  • 日志记录到文件中,超出设置的大小就会新建日志文件,i 表示从 0 开始日志文件的顺序
logging:
  logback:
    rollingpolicy:
      max-file-size: 3KB
      file-name-pattern: server.%d{yyyy-MM-dd}.%i.log

在这里插入图片描述