SpringBoot整合Logback日志框架+Slf4j注解使用

1.基本介绍

SpringBoot默认日志框架是Logback,是对log4j升级出现的另一个开源日志组件,内核进行了重写,整体性能上比log4j突出不少。


2.使用说明

2.1 引入maven依赖

为什么我们要引入这些jar包?一个良好的项目需要正常启动

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependencOC
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
</dependency>


解释说明

SpringBoot中初始创建项目,引入原骨架Parent

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.5.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

在项目工程中,command+点击 `spring-boot-starter-parent` 会进入 `spring-boot-starter-parent-2.1.5.RELEASE.pom` 文件中

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.1.5.RELEASE</version>
    <relativePath>../../spring-boot-dependencies</relativePath>
  </parent>

command+点击 `2.1.5.RELEASE` 进入到各种包的依赖,并且规定了版本号,搜索一下,可以看到他们集成的logback包

<dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-access</artifactId>
        <version>${logback.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>${logback.version}</version>
      </dependency>

2.2 创建logback-spring.xml


在resources目录下 application.yml/applitions.properties配置,由于我在resources目录下,创建config文件夹,将logback-spring.xml放在此文件夹下,所以路径有所变化。

# 日志配置
logging:
  config: classpath:config/logback/logback-spring.xml

Springboot本身内置的日志功能,日志的使用方式跟我们平常使用的日志一样,但是此配置不仅可以在控制台输出,还能输出到磁盘,依据定义的策略,可以按天、大小、类型区分开来。


3.编写一个HTTP接口

- 创建package命名为com.daobili.comtroller(根据实际情况修改)

- 创建HelloController类,内容如下:

@RestController
@RequestMapping("/hello")
// 通过注解 @Slf4j 的方式
@Slf4j
public class HelloController {
    /**
     * 两种方式使用logback
     * 1.通过创建LoggerFactory实例
     * 2.通过注解 @Slf4j 的方式
     *
     */
    /**
     * 通过创建LoggerFactory实例
     */
    //private final static Logger LOGGER = LoggerFactory.getLogger(HelloController.class);
    @RequestMapping("/say/{name}")
    public String sayHello(@PathVariable("name") String name) {
        //LOGGER.info("hello,{}",name);
        log.info("使用注解的方式日志服务:sayHello:{}" + name);
        return "hello " + name;
    }
}

3.1 通过创建LoggerFactory实例

/**
     * 通过创建LoggerFactory实例
     */
    //private final static Logger LOGGER = LoggerFactory.getLogger(HelloController.class);

3.2 通过注解 @Slf4j 的方式

  1. 在pom文件中添加依赖,引入lombok
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>


  1. 类添加注解
// 通过注解 @Slf4j 的方式
@Slf4j
public class HelloController {
}

- 启动主程序,打开浏览器或者Postman发起请求: http://localhost:8080/hello/bamaw,可以看到页面返回 hello bamaw

上一篇:春节跳槽最新Java面试题及答案整理


下一篇:MySQL常用集群方案