diff --git a/hudi-aws/pom.xml b/hudi-aws/pom.xml
index dc9653a62f916..03ee1d8539cef 100644
--- a/hudi-aws/pom.xml
+++ b/hudi-aws/pom.xml
@@ -48,8 +48,16 @@
- log4j
- log4j
+ org.apache.logging.log4j
+ log4j-api
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
diff --git a/hudi-cli/pom.xml b/hudi-cli/pom.xml
index e3111f3fb9a0c..663c1a7bcdf7d 100644
--- a/hudi-cli/pom.xml
+++ b/hudi-cli/pom.xml
@@ -201,8 +201,16 @@
- log4j
- log4j
+ org.apache.logging.log4j
+ log4j-api
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
diff --git a/hudi-client/hudi-client-common/pom.xml b/hudi-client/hudi-client-common/pom.xml
index ddfd4a2fd584d..f764f9f3ae8eb 100644
--- a/hudi-client/hudi-client-common/pom.xml
+++ b/hudi-client/hudi-client-common/pom.xml
@@ -55,8 +55,16 @@
- log4j
- log4j
+ org.apache.logging.log4j
+ log4j-api
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/callback/client/http/HoodieWriteCommitHttpCallbackClient.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/callback/client/http/HoodieWriteCommitHttpCallbackClient.java
index 6d1059cb98da8..568204f65588b 100644
--- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/callback/client/http/HoodieWriteCommitHttpCallbackClient.java
+++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/callback/client/http/HoodieWriteCommitHttpCallbackClient.java
@@ -28,8 +28,8 @@
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.hudi.config.HoodieWriteCommitCallbackConfig;
import org.apache.hudi.config.HoodieWriteConfig;
-import org.apache.log4j.LogManager;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import java.io.Closeable;
import java.io.IOException;
diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/datadog/DatadogHttpClient.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/datadog/DatadogHttpClient.java
index b0912aaaabfe2..b3b1bcb8f7866 100644
--- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/datadog/DatadogHttpClient.java
+++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/datadog/DatadogHttpClient.java
@@ -32,8 +32,8 @@
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
-import org.apache.log4j.LogManager;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import java.io.Closeable;
import java.io.IOException;
diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/datadog/DatadogReporter.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/datadog/DatadogReporter.java
index a388aecda0ae4..b67252a729593 100644
--- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/datadog/DatadogReporter.java
+++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/datadog/DatadogReporter.java
@@ -34,8 +34,8 @@
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.databind.node.TextNode;
-import org.apache.log4j.LogManager;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import java.io.IOException;
import java.util.List;
diff --git a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/callback/http/TestCallbackHttpClient.java b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/callback/http/TestCallbackHttpClient.java
index 0ab6f32dc5de4..8d3d00d572486 100644
--- a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/callback/http/TestCallbackHttpClient.java
+++ b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/callback/http/TestCallbackHttpClient.java
@@ -23,11 +23,13 @@
import org.apache.http.StatusLine;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.log4j.AppenderSkeleton;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.core.Appender;
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.Logger;
import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.ArgumentCaptor;
@@ -52,10 +54,10 @@
public class TestCallbackHttpClient {
@Mock
- AppenderSkeleton appender;
+ Appender appender;
@Captor
- ArgumentCaptor logCaptor;
+ ArgumentCaptor logCaptor;
@Mock
CloseableHttpClient httpClient;
@@ -66,8 +68,17 @@ public class TestCallbackHttpClient {
@Mock
StatusLine statusLine;
+ @BeforeEach
+ void prepareAppender() {
+ when(appender.getName()).thenReturn("MockAppender");
+ when(appender.isStarted()).thenReturn(true);
+ when(appender.isStopped()).thenReturn(false);
+ ((Logger) LogManager.getLogger(HoodieWriteCommitHttpCallbackClient.class)).addAppender(appender);
+ }
+
@AfterEach
void resetMocks() {
+ ((Logger) LogManager.getLogger(HoodieWriteCommitHttpCallbackClient.class)).removeAppender(appender);
reset(appender, httpClient, httpResponse, statusLine);
}
@@ -83,21 +94,19 @@ private void mockResponse(int statusCode) {
@Test
public void sendPayloadShouldLogWhenRequestFailed() throws IOException {
- Logger.getRootLogger().addAppender(appender);
when(httpClient.execute(any())).thenThrow(IOException.class);
HoodieWriteCommitHttpCallbackClient hoodieWriteCommitCallBackHttpClient =
new HoodieWriteCommitHttpCallbackClient("fake_api_key", "fake_url", httpClient);
hoodieWriteCommitCallBackHttpClient.send("{}");
- verify(appender).doAppend(logCaptor.capture());
- assertEquals("Failed to send callback.", logCaptor.getValue().getRenderedMessage());
+ verify(appender).append(logCaptor.capture());
+ assertEquals("Failed to send callback.", logCaptor.getValue().getMessage().getFormattedMessage());
assertEquals(Level.WARN, logCaptor.getValue().getLevel());
}
@Test
public void sendPayloadShouldLogUnsuccessfulSending() {
- Logger.getRootLogger().addAppender(appender);
mockResponse(401);
when(httpResponse.toString()).thenReturn("unauthorized");
@@ -105,22 +114,21 @@ public void sendPayloadShouldLogUnsuccessfulSending() {
new HoodieWriteCommitHttpCallbackClient("fake_api_key", "fake_url", httpClient);
hoodieWriteCommitCallBackHttpClient.send("{}");
- verify(appender).doAppend(logCaptor.capture());
- assertEquals("Failed to send callback message. Response was unauthorized", logCaptor.getValue().getRenderedMessage());
+ verify(appender).append(logCaptor.capture());
+ assertEquals("Failed to send callback message. Response was unauthorized", logCaptor.getValue().getMessage().getFormattedMessage());
assertEquals(Level.WARN, logCaptor.getValue().getLevel());
}
@Test
public void sendPayloadShouldLogSuccessfulSending() {
- Logger.getRootLogger().addAppender(appender);
mockResponse(202);
HoodieWriteCommitHttpCallbackClient hoodieWriteCommitCallBackHttpClient =
new HoodieWriteCommitHttpCallbackClient("fake_api_key", "fake_url", httpClient);
hoodieWriteCommitCallBackHttpClient.send("{}");
- verify(appender).doAppend(logCaptor.capture());
- assertTrue(logCaptor.getValue().getRenderedMessage().startsWith("Sent Callback data"));
+ verify(appender).append(logCaptor.capture());
+ assertTrue(logCaptor.getValue().getMessage().getFormattedMessage().startsWith("Sent Callback data"));
assertEquals(Level.INFO, logCaptor.getValue().getLevel());
}
diff --git a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/datadog/TestDatadogHttpClient.java b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/datadog/TestDatadogHttpClient.java
index 642c46bafb60a..ebc46db00dabd 100644
--- a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/datadog/TestDatadogHttpClient.java
+++ b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/datadog/TestDatadogHttpClient.java
@@ -23,11 +23,13 @@
import org.apache.http.StatusLine;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.log4j.AppenderSkeleton;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.core.Appender;
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.Logger;
import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.params.ParameterizedTest;
@@ -55,10 +57,10 @@
public class TestDatadogHttpClient {
@Mock
- AppenderSkeleton appender;
+ Appender appender;
@Captor
- ArgumentCaptor logCaptor;
+ ArgumentCaptor logCaptor;
@Mock
CloseableHttpClient httpClient;
@@ -69,8 +71,17 @@ public class TestDatadogHttpClient {
@Mock
StatusLine statusLine;
+ @BeforeEach
+ void prepareAppender() {
+ when(appender.getName()).thenReturn("MockAppender");
+ when(appender.isStarted()).thenReturn(true);
+ when(appender.isStopped()).thenReturn(false);
+ ((Logger) LogManager.getLogger(DatadogHttpClient.class)).addAppender(appender);
+ }
+
@AfterEach
void resetMocks() {
+ ((org.apache.logging.log4j.core.Logger) LogManager.getLogger(DatadogHttpClient.class)).removeAppender(appender);
reset(appender, httpClient, httpResponse, statusLine);
}
@@ -106,41 +117,41 @@ public void validateApiKeyShouldThrowExceptionWhenResponseNotSuccessful() {
@Test
public void sendPayloadShouldLogWhenRequestFailed() throws IOException {
- Logger.getRootLogger().addAppender(appender);
+ ((Logger) LogManager.getLogger(DatadogHttpClient.class)).addAppender(appender);
when(httpClient.execute(any())).thenThrow(IOException.class);
DatadogHttpClient ddClient = new DatadogHttpClient(ApiSite.US, "foo", true, httpClient);
ddClient.send("{}");
- verify(appender).doAppend(logCaptor.capture());
- assertEquals("Failed to send to Datadog.", logCaptor.getValue().getRenderedMessage());
+ verify(appender).append(logCaptor.capture());
+ assertEquals("Failed to send to Datadog.", logCaptor.getValue().getMessage().getFormattedMessage());
assertEquals(Level.WARN, logCaptor.getValue().getLevel());
}
@Test
public void sendPayloadShouldLogUnsuccessfulSending() {
- Logger.getRootLogger().addAppender(appender);
+ ((Logger) LogManager.getLogger(DatadogHttpClient.class)).addAppender(appender);
mockResponse(401);
when(httpResponse.toString()).thenReturn("unauthorized");
DatadogHttpClient ddClient = new DatadogHttpClient(ApiSite.US, "foo", true, httpClient);
ddClient.send("{}");
- verify(appender).doAppend(logCaptor.capture());
- assertEquals("Failed to send to Datadog. Response was unauthorized", logCaptor.getValue().getRenderedMessage());
+ verify(appender).append(logCaptor.capture());
+ assertEquals("Failed to send to Datadog. Response was unauthorized", logCaptor.getValue().getMessage().getFormattedMessage());
assertEquals(Level.WARN, logCaptor.getValue().getLevel());
}
@Test
public void sendPayloadShouldLogSuccessfulSending() {
- Logger.getRootLogger().addAppender(appender);
+ ((Logger) LogManager.getLogger(DatadogHttpClient.class)).addAppender(appender);
mockResponse(202);
DatadogHttpClient ddClient = new DatadogHttpClient(ApiSite.US, "foo", true, httpClient);
ddClient.send("{}");
- verify(appender).doAppend(logCaptor.capture());
- assertTrue(logCaptor.getValue().getRenderedMessage().startsWith("Sent metrics data"));
+ verify(appender).append(logCaptor.capture());
+ assertTrue(logCaptor.getValue().getMessage().getFormattedMessage().startsWith("Sent metrics data"));
assertEquals(Level.DEBUG, logCaptor.getValue().getLevel());
}
diff --git a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/datadog/TestDatadogReporter.java b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/datadog/TestDatadogReporter.java
index 607cce9ee8c93..838b97c493fb3 100644
--- a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/datadog/TestDatadogReporter.java
+++ b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metrics/datadog/TestDatadogReporter.java
@@ -24,10 +24,11 @@
import com.codahale.metrics.MetricFilter;
import com.codahale.metrics.MetricRegistry;
-import org.apache.log4j.AppenderSkeleton;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.core.Appender;
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.Logger;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -44,15 +45,16 @@
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
public class TestDatadogReporter {
@Mock
- AppenderSkeleton appender;
+ Appender appender;
@Captor
- ArgumentCaptor logCaptor;
+ ArgumentCaptor logCaptor;
@Mock
MetricRegistry registry;
@@ -62,6 +64,7 @@ public class TestDatadogReporter {
@AfterEach
void resetMocks() {
+ ((Logger) LogManager.getLogger(DatadogReporter.class)).removeAppender(appender);
reset(appender, registry, client);
}
@@ -75,14 +78,18 @@ public void stopShouldCloseEnclosedClient() throws IOException {
@Test
public void stopShouldLogWhenEnclosedClientFailToClose() throws IOException {
- Logger.getRootLogger().addAppender(appender);
+ when(appender.getName()).thenReturn("MockAppender");
+ when(appender.isStarted()).thenReturn(true);
+ when(appender.isStopped()).thenReturn(false);
+ ((Logger) LogManager.getLogger(DatadogReporter.class)).addAppender(appender);
+
doThrow(IOException.class).when(client).close();
new DatadogReporter(registry, client, "foo", Option.empty(), Option.empty(),
MetricFilter.ALL, TimeUnit.SECONDS, TimeUnit.SECONDS).stop();
- verify(appender).doAppend(logCaptor.capture());
- assertEquals("Error disconnecting from Datadog.", logCaptor.getValue().getRenderedMessage());
+ verify(appender).append(logCaptor.capture());
+ assertEquals("Error disconnecting from Datadog.", logCaptor.getValue().getMessage().getFormattedMessage());
assertEquals(Level.WARN, logCaptor.getValue().getLevel());
}
diff --git a/hudi-gcp/pom.xml b/hudi-gcp/pom.xml
index 8c4f54f047f2a..4dd2fceb9da27 100644
--- a/hudi-gcp/pom.xml
+++ b/hudi-gcp/pom.xml
@@ -63,8 +63,16 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google
- log4j
- log4j
+ org.apache.logging.log4j
+ log4j-api
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
diff --git a/hudi-integ-test/pom.xml b/hudi-integ-test/pom.xml
index 3c19e5ef261b3..fda492a42f667 100644
--- a/hudi-integ-test/pom.xml
+++ b/hudi-integ-test/pom.xml
@@ -165,8 +165,16 @@
- log4j
- log4j
+ org.apache.logging.log4j
+ log4j-api
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
diff --git a/hudi-kafka-connect/pom.xml b/hudi-kafka-connect/pom.xml
index 1bfb9765035e6..d903fa4dec681 100644
--- a/hudi-kafka-connect/pom.xml
+++ b/hudi-kafka-connect/pom.xml
@@ -171,8 +171,16 @@
- log4j
- log4j
+ org.apache.logging.log4j
+ log4j-api
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
diff --git a/hudi-spark-datasource/hudi-spark/pom.xml b/hudi-spark-datasource/hudi-spark/pom.xml
index 1b83cf5eca662..b25fea4e52c87 100644
--- a/hudi-spark-datasource/hudi-spark/pom.xml
+++ b/hudi-spark-datasource/hudi-spark/pom.xml
@@ -256,8 +256,16 @@
- log4j
- log4j
+ org.apache.logging.log4j
+ log4j-api
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
diff --git a/hudi-sync/hudi-adb-sync/pom.xml b/hudi-sync/hudi-adb-sync/pom.xml
index 0a01ffd61a6d6..fb2ce66e3f12e 100644
--- a/hudi-sync/hudi-adb-sync/pom.xml
+++ b/hudi-sync/hudi-adb-sync/pom.xml
@@ -98,8 +98,16 @@
- log4j
- log4j
+ org.apache.logging.log4j
+ log4j-api
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
diff --git a/hudi-sync/hudi-datahub-sync/pom.xml b/hudi-sync/hudi-datahub-sync/pom.xml
index 9a4588eda974e..68803bbf47a11 100644
--- a/hudi-sync/hudi-datahub-sync/pom.xml
+++ b/hudi-sync/hudi-datahub-sync/pom.xml
@@ -70,8 +70,16 @@
- log4j
- log4j
+ org.apache.logging.log4j
+ log4j-api
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
diff --git a/hudi-sync/hudi-hive-sync/pom.xml b/hudi-sync/hudi-hive-sync/pom.xml
index 111e66b227563..6e29f94be0058 100644
--- a/hudi-sync/hudi-hive-sync/pom.xml
+++ b/hudi-sync/hudi-hive-sync/pom.xml
@@ -55,8 +55,16 @@
- log4j
- log4j
+ org.apache.logging.log4j
+ log4j-api
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
diff --git a/hudi-timeline-service/pom.xml b/hudi-timeline-service/pom.xml
index c360279326c02..467c84a1002fb 100644
--- a/hudi-timeline-service/pom.xml
+++ b/hudi-timeline-service/pom.xml
@@ -77,8 +77,16 @@
- log4j
- log4j
+ org.apache.logging.log4j
+ log4j-api
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
diff --git a/hudi-utilities/pom.xml b/hudi-utilities/pom.xml
index 8fafb06d98ddf..09c04f4caf976 100644
--- a/hudi-utilities/pom.xml
+++ b/hudi-utilities/pom.xml
@@ -173,8 +173,16 @@
- log4j
- log4j
+ org.apache.logging.log4j
+ log4j-api
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
diff --git a/packaging/hudi-integ-test-bundle/pom.xml b/packaging/hudi-integ-test-bundle/pom.xml
index 962e74739e15e..bcd695f866aa8 100644
--- a/packaging/hudi-integ-test-bundle/pom.xml
+++ b/packaging/hudi-integ-test-bundle/pom.xml
@@ -644,8 +644,16 @@
- log4j
- log4j
+ org.apache.logging.log4j
+ log4j-api
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
org.slf4j
diff --git a/packaging/hudi-kafka-connect-bundle/pom.xml b/packaging/hudi-kafka-connect-bundle/pom.xml
index 211343dbbcbad..29eccea0f3f0f 100644
--- a/packaging/hudi-kafka-connect-bundle/pom.xml
+++ b/packaging/hudi-kafka-connect-bundle/pom.xml
@@ -284,8 +284,16 @@
compile
- log4j
- log4j
+ org.apache.logging.log4j
+ log4j-api
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
diff --git a/packaging/hudi-timeline-server-bundle/pom.xml b/packaging/hudi-timeline-server-bundle/pom.xml
index 1472413f1ffcd..d745597801466 100644
--- a/packaging/hudi-timeline-server-bundle/pom.xml
+++ b/packaging/hudi-timeline-server-bundle/pom.xml
@@ -44,8 +44,16 @@
- log4j
- log4j
+ org.apache.logging.log4j
+ log4j-api
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
diff --git a/pom.xml b/pom.xml
index e3c8b3e8c6f17..f5b3413160bd1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -106,8 +106,8 @@
5.7.2
1.7.2
3.3.3
- 1.2.17
2.17.2
+ 2.17.2
1.7.30
2.9.9
2.10.1
@@ -512,9 +512,19 @@
- log4j
- log4j
- ${log4j.version}
+ org.apache.logging.log4j
+ log4j-api
+ ${log4j2.version}
+
+
+ org.apache.logging.log4j
+ log4j-core
+ ${log4j2.version}
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
+ ${log4j2.version}