> 文档中心 > Spring Boot整合日志

Spring Boot整合日志


✨Spring Boot整合日志

  • 1.日志框架概述
  • 2.slf4j(Spring Boot底层默认整合slf4j)
  • 3.日志全局配置
    • 3.1配置日志级别(默认是info)
    • 3.2配置日志的输出格式
    • 3.3配置日志文件的输出位置
  • 4.logback配置文件(Spring Boot日志的实现层默认使用logback)
    • 4.1全局配置文件中,设置logback配置文件路径
    • 4.2logback配置
  • 5.整合Lombok
    • 5.1概述
    • 5.2插件安装
    • 5.3Lombok的使用

📃个人主页: 不断前进的皮卡丘
🌞博客描述: 梦想也许遥不可及,但重要的是追梦的过程,用博客记录自己的成长,记录自己一步一步向上攀登的印记
🔥网站推荐:千里之行,始于足下。每天坚持刷题,巩固所学知识,也为将来找工作,面试做好准备----- 刷题神器

1.日志框架概述

  • 市面上常见的日志框架有很多,它们可以被分为两类:日志门面(日志抽象层)和日志实现

  • 通常情况下,日志由一个日志门面与一个日志实现组合搭建而成,Spring Boot 选用 SLF4J + Logback 的组合来搭建日志系统。

  • SLF4J 是目前市面上最流行的日志门面,使用 Slf4j 可以很灵活的使用占位符进行参数占位,简化代码,拥有更好的可读性。

  • Logback 是 Slf4j 的原生实现框架,它与 Log4j 出自一个人之手,但拥有比 log4j 更多的优点、特性和更做强的性能,现在基本都用来代替 log4j 成为主流。

  • Spring Boot整合日志

2.slf4j(Spring Boot底层默认整合slf4j)

1️⃣slf4j(Simple Logging Facade for java)中文意思是简单日志门面,是获取日志的标标准接口。
2️⃣slf4j的官网地址:https://www.slf4j.org/
3️⃣slf4j的日志级别分为:trace<debug<info<warn<error, 默认级别是info
Spring Boot整合日志
Spring Boot整合日志
Spring Boot整合日志

3.日志全局配置

3.1配置日志级别(默认是info)

Spring Boot整合日志
Spring Boot整合日志

3.2配置日志的输出格式

Spring Boot整合日志

Spring Boot整合日志

3.3配置日志文件的输出位置

Spring Boot整合日志
我们可以看到在D盘确实可以找到对应的日志文件的输出位置,而且日志信息是追加的Spring Boot整合日志

4.logback配置文件(Spring Boot日志的实现层默认使用logback)

这里简单了解一下就可以
除了全局配置文件配置日志以外,我们也可以单独配置日志文件,比如logback的配置如下:

4.1全局配置文件中,设置logback配置文件路径

# 激活开发环境spring.profiles.active=dev# 设置日志配置文件位置logging.config=classpath:logback-config.xml

4.2logback配置

logback的使用

5.整合Lombok

5.1概述

  • Lombok简化了实体类中大量的getter/setter、toString、hashCode、equals等方法
  • 在运行过程中,Lombok自动生成相应方法
  • Lombok通过注解的方法,注入了日志对象log
  • 官网地址:https://www.projectlombok.org/

5.2插件安装

Spring Boot整合日志

5.3Lombok的使用

在创建Spring Boot项目的时候,勾选Lombok
Spring Boot整合日志
然后构建项目的时候,会自动在pom.xml中添加lombok依赖
Spring Boot整合日志
Spring Boot整合日志
如果我们相要使用有参构造的话,这个时候是不可以的,因为没有提供对应的有参构造方法,为了解决这个情况,我们可以使用注解

@Data@AllArgsConstructor  //帮我们生成有参构造@Componentpublic class Book {    private String name;    private Double price;}

但是,我们也可以发现,使用@AllArgsConstructor提供了有参构造后,无参构造就不会创建,但是有时候我们是需要使用无参构造,比如说实体类在spring容器中的自动注入就必须提供无参构造
@NoArgsConstructor可以提供无参构造
@AllArgsConstructor可以提供有参构造
Spring Boot整合日志
Spring Boot整合日志