一、项目环境
1、JDK7
2、 servlet3.0
二、导入jar
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.24</version>
</dependency>
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.3.6</version>
</dependency>
注意:disruptor和log4j版本的关系 !!!
Log4j-2.9及以上 需要disruptor-3.3.4.jar及以上
Log4j-2.9以下 需要disruptor-3.0.0.jar及以上
三、创建配置文件
1)、创建属性文件 log4j2.component.properties (放在resources下)
log4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
但是下面官网说了Log4j 2.10.0及以后版本,key值规格书写了。
总结:
1、支持Log4j 2.10.0及以上版本
log4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
2、支持所有版本
Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
2)、创建xml文件 log4j2.xml (放在resources下)
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
四、测试
package com.bycotrun.buylimit.web;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.async.AsyncLoggerContextSelector;
public class Test {
@org.junit.Test
public void myLog() {
Logger logger = LogManager.getLogger(Test.class);
logger.info("是否启用全局异步日志:"+AsyncLoggerContextSelector.isSelected());
}
}