Springboot 2.x 使用 Log4j2 异步打印日志

介绍

目前常用的 Java 日志框架有 Log4j、Logback、Log4j2 ,性能方面推荐使用异步的 Log4j2,具体对比不多做分析,前人早已完成耕荒,我们就站在巨人的肩膀上来看看如何实操。

SLF4J,简单日志门面(Simple Logging Facade for Java),是一个用于日志系统的简单 Facade,不是具体的日志解决方案,而是通过Facade Pattern提供一些Java logging API,我的理解是它和 Log4j、Logback、Log4j2 的关系类似于 Java 接口与实现类的关系。

1、pom 准备

1.1、war 包 web 工程


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



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



    com.lmax
    disruptor
    3.4.2

1.2、jar 包自启动工程


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



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



    com.lmax
    disruptor
    3.4.2

2、application.yml 配置

# 引入日志配置文件
logging:
  config: classpath:log4j2.xml

3、log4j2.xml 配置

classpath:log4j2.xml 的话,log4j2.xml 放在目录 resources 下即可





    

    
    
        
        
        
        
        
        
    

    

        
            
            
        

        
        
            
            
                
                
                
            
            
            
                
                
                    
                    
                    
                    
                    
                
            
        
    

    
    
    
        
        
        
            
            
        
        
            
            
        
        
            
            
        
    

4、使用

4.1、声明 logger 变量

package com.songo.service;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TestService {
    private static final Logger logger = LoggerFactory.getLogger(TestService.class);
    
    public void Test() {
        logger.info("test...");
    }
}

4.2、简单点 lombok

引入 pom


    org.projectlombok
    lombok
    provided

package com.songo.service;

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class TestService {

    public void Test() {
        log.info("test...");
    }
}

5、验证

服务启动时,找到 log4j2 的线程,是如下内容说明 log4j2 异步日志打印配置成功


记录如有不对烦请指出,先行感谢

你可能感兴趣的:(Springboot 2.x 使用 Log4j2 异步打印日志)