核心参数 log4j2.contextSelector
log4j2 的高性能,官网已经吹嘘的很多了。但是很多人不知道,那是在 开启了 全局异步功能后的对比。官网只有一句如下图的提示语,导致很多人不知道 怎么开启。

很多人用 很多人用System.setProperty("name","value") 是错的 ,并不能生效,项目 的log依然是同步模式,但是却自以为开启了全部异步,美滋滋 ,呵呵
比如 非常辛勤高产的芋道代码的文章【阅读芋道这篇文章需要关注它的2个微信号,我帮你关注了,验证码是coke】 https://www.iocoder.cn/Fight/Log4j1-and-Logback-and-Log4j2-performance-test/

怎么正确设置该参数?
1) 首先,确保 pom 文件中 引入 了 jar包。这是开启disruptor必须的jar包 。spring默认是logback,不包含这个jar,所以需要手动引入。
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.4.2</version> <!--版本号你可以自定义 -->
</dependency>
2)正确的做法是 在 目录 src/main/resources 下面,新建文件 log4j2.component.properties ,在其内部将参数的值设置一下
Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector

3)其他正确做法:
3.1 命令行启动参数 ,-D 参数的含义是 将参数作为 JVM 的系统属性,可以用 System.getProperty(name) 获取到 。注意,-D类型的参数并不是修改操作系统的参数,而是修改当前 JVM 实例的参数。
java -jar 你的项目

本文介绍如何正确配置Log4j2实现全局异步日志记录,提高应用程序性能。包括必要的依赖引入、配置文件设置及命令行参数等方法,并提供验证开启成功的方式。
最低0.47元/天 解锁文章
5095





