Springboot 2.x 使用 Log4j2 异步打印日志
目录
- 介绍
- 1、pom 准备
- 1.1、war 包 web 工程
- 1.2、jar 包自启动工程
- 2、application.yml 配置
- 3、log4j2.xml 配置
- 4、使用
- 4.1、声明 logger 变量
- 4.2、简单点 lombok
- 5、验证
介绍
目前常用的 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 下即可
<?xml version="1.0" encoding="UTF-8"?>
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 异步日志打印配置成功
记录如有不对烦请指出,先行感谢