SpringBoot集成Log4j2框架

1.说明

本文详细介绍Spring Boot集成Log4j2框架的方法,
基于已经创建好的Spring Boot工程,
由于Spring Boot默认使用的是Logback框架,
需要先排除掉Logback框架,
然后引入Log4j2框架,
再使用日志门面Slf4j框架打印日志。

2.修改pom.xml文件

首先排除掉Logback框架,
由于spring-boot-starter依赖的spring-boot-starter-logging
默认使用的是Logback框架,
所以需要排除掉spring-boot-starter-logging依赖;

然后引入spring-boot-starter-log4j2依赖,
它包含了引入Log4j2框架需要的所有依赖。

修改在pom.xml文件如下:



    org.springframework.boot
    spring-boot-starter
    
        
            org.springframework.boot
            spring-boot-starter-logging
        
    


    org.springframework.boot
    spring-boot-starter-log4j2


如果引入了第三方的框架依赖,
注意一定要把Logback的依赖排除干净,
可以通过IDE工具查看Maven依赖,
把所有Logback的依赖排除掉即可。

3.新增log4j2.xml文件

注意修改日志包路径com.example.demo,
对应的日志级别需要为DEBUG:





    
    
        
        logs
        
        mybatis_plus_demo
    
    
    
        
        
            
            
        
        
        
        
        
            
            
            
            
                
                
                
                
                
                
                
                
            
            
            
            
            
                
                
                
                    
                    
                    
                    
                    
                    
                
            
        
    
    
    
        
        
        
            
        
        
        
            
        
        
        
        
            
        
    

4.使用Slf4j打印

业务打印日志需要先创建logger,
注意使用Slf4j提供的类:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private Logger logger = LoggerFactory.getLogger(getClass());

然后在业务需要的地方打印日志即可,
包含日志的完整业务代码如下:

package com.example.demo.controller.impl;

import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;

import com.example.demo.controller.UserController;
import com.example.demo.entity.User;
import com.example.demo.service.UserService;

@RestController
public class UserControllerImpl implements UserController {

    private Logger logger = LoggerFactory.getLogger(getClass());

    @Autowired
    UserService userService;

    @Override
    public List getUsersAll() {
        logger.debug("UserControllerImpl.getUsersAll() start");
        List users = userService.getUsersAll();
        logger.debug("UserControllerImpl.getUsersAll() end, result users={}", users);
        return users;
    }

}

5.开始日志打印

启动Spring Boot应用,
然后调用业务提供的接口,
可以看到如下日志:

2020-07-02 15:57:11.723 [http-nio-8088-exec-1] DEBUG [24] - UserControllerImpl.getUsersAll() start
2020-07-02 15:57:11.883 [http-nio-8088-exec-1] DEBUG [143] - ==>  Preparing: SELECT id,name,age,email FROM TBL_USER 
2020-07-02 15:57:11.901 [http-nio-8088-exec-1] DEBUG [143] - ==> Parameters: 
2020-07-02 15:57:11.920 [http-nio-8088-exec-1] DEBUG [143] - <==      Total: 5
2020-07-02 15:57:11.925 [http-nio-8088-exec-1] DEBUG [26] - UserControllerImpl.getUsersAll() end, result users=[User [id=1, name=Jone, age=18, [email protected]], User [id=2, name=Jack, age=20, [email protected]], User [id=3, name=Tom, age=28, [email protected]], User [id=4, name=Sandy, age=21, [email protected]], User [id=5, name=Billie, age=24, [email protected]]]

同时可以看到工程根目录下生成了日志文件:

logs\mybatis_plus_demo.log

你可能感兴趣的:(SpringBoot集成Log4j2框架)