This is an automated email from the ASF dual-hosted git repository.

suvasude pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-gobblin.git


The following commit(s) were added to refs/heads/master by this push:
     new f3cf13d  [GOBBLIN-822] Revert " Upgrade log4j to log4j2 for LogRouting 
use-case"
f3cf13d is described below

commit f3cf13d75eae638698662041fd035e838f0939b2
Author: William Lo <[email protected]>
AuthorDate: Wed Nov 27 17:07:41 2019 -0800

    [GOBBLIN-822] Revert " Upgrade log4j to log4j2 for LogRouting use-case"
    
    Closes #2832 from Will-Lo/revert-log4j2-changes
---
 gobblin-api/build.gradle                           |  2 +-
 .../gobblin/testing/AssertWithBackoffTest.java     |  2 +-
 gobblin-audit/build.gradle                         |  2 +-
 gobblin-aws/build.gradle                           |  2 +-
 gobblin-cluster/build.gradle                       |  2 +-
 .../cluster/suite/IntegrationBasicSuite.java       |  8 +---
 .../src/test/resources/BasicTaskDriver.conf        |  4 +-
 gobblin-cluster/src/test/resources/log4j.xml       | 52 ++++++++++++++++++++++
 gobblin-cluster/src/test/resources/log4j2.xml      | 35 ---------------
 .../src/test/resources/log4j.xml                   | 37 +++++++++------
 .../gobblin-config-client/build.gradle             |  2 +-
 .../apache/gobblin/config/client/ConfigClient.java |  5 +--
 .../config/client/ConfigStoreFactoryRegister.java  |  5 +--
 .../gobblin-config-core/build.gradle               |  2 +-
 gobblin-data-management/build.gradle               |  2 +-
 .../conversion/hive/source/HiveSource.java         | 11 ++---
 gobblin-docs/case-studies/Hive-Distcp.md           |  2 +-
 .../Configuration-Properties-Glossary.md           |  2 +-
 gobblin-hive-registration/build.gradle             |  2 +-
 gobblin-modules/gobblin-azkaban/build.gradle       |  2 +-
 .../gobblin/azkaban/AzkabanGobblinDaemon.java      |  7 +--
 .../data/management/trash/TrashCollectorJob.java   |  5 +--
 .../gobblin/metrics/kafka/LoggingPusherTest.java   | 37 +++++++--------
 gobblin-runtime/build.gradle                       | 18 +++-----
 .../apache/gobblin/runtime/locks/JobLockTest.java  |  4 +-
 .../runtime/mapreduce/MRTaskFactoryTest.java       | 32 ++++++-------
 .../src/test/resources/log4j.xml                   | 37 +++++++++------
 gobblin-service/build.gradle                       |  2 +-
 .../apache/gobblin/TaskErrorIntegrationTest.java   | 41 ++++++++---------
 gobblin-utility/build.gradle                       |  1 -
 .../org/apache/gobblin/util/AvroFlattener.java     |  5 +--
 .../org/apache/gobblin/util/hadoop/TokenUtils.java |  5 +--
 gobblin-yarn/build.gradle                          |  2 +-
 gradle/scripts/computeVersions.gradle              |  5 +--
 gradle/scripts/dependencyDefinitions.gradle        |  9 ++--
 gradle/scripts/globalDependencies.gradle           | 14 ------
 36 files changed, 194 insertions(+), 211 deletions(-)

diff --git a/gobblin-api/build.gradle b/gobblin-api/build.gradle
index 8f9a72d..d8841b1 100644
--- a/gobblin-api/build.gradle
+++ b/gobblin-api/build.gradle
@@ -33,7 +33,7 @@ dependencies {
 
     testCompile externalDependency.testng
     testCompile externalDependency.mockito
-    testCompile externalDependency.log4j2
+    testCompile externalDependency.log4j
 }
 
 configurations {
diff --git 
a/gobblin-api/src/test/java/org/apache/gobblin/testing/AssertWithBackoffTest.java
 
b/gobblin-api/src/test/java/org/apache/gobblin/testing/AssertWithBackoffTest.java
index 0c06f0b..7f1fae8 100644
--- 
a/gobblin-api/src/test/java/org/apache/gobblin/testing/AssertWithBackoffTest.java
+++ 
b/gobblin-api/src/test/java/org/apache/gobblin/testing/AssertWithBackoffTest.java
@@ -103,7 +103,7 @@ public class AssertWithBackoffTest {
   }
 
   public static void setLogjLevelForLogger(Logger log, Level logLevel) {
-    org.apache.log4j.Logger log4jLogger = 
org.apache.log4j.LogManager.getLogger(log.getName());
+    org.apache.log4j.Logger log4jLogger = 
org.apache.log4j.Logger.getLogger(log.getName());
     log4jLogger.setLevel(logLevel);
   }
 
diff --git a/gobblin-audit/build.gradle b/gobblin-audit/build.gradle
index 2b88f04..e6d3659 100644
--- a/gobblin-audit/build.gradle
+++ b/gobblin-audit/build.gradle
@@ -30,7 +30,7 @@ dependencies {
     compile externalDependency.reflections
 
     testCompile externalDependency.testng
-    testCompile externalDependency.log4j2
+    testCompile externalDependency.log4j
     testCompile externalDependency.mockito
 }
 
diff --git a/gobblin-aws/build.gradle b/gobblin-aws/build.gradle
index dc19e92..37d4389 100644
--- a/gobblin-aws/build.gradle
+++ b/gobblin-aws/build.gradle
@@ -41,7 +41,7 @@ dependencies {
   compile externalDependency.guava
   compile externalDependency.commonsLang
   compile externalDependency.slf4j
-  compile externalDependency.log4j2
+  compile externalDependency.log4j
   compile externalDependency.commonsCli
   compile externalDependency.gson
   compile externalDependency.hiveCommon
diff --git a/gobblin-cluster/build.gradle b/gobblin-cluster/build.gradle
index fe34b2f..e52854d 100644
--- a/gobblin-cluster/build.gradle
+++ b/gobblin-cluster/build.gradle
@@ -33,7 +33,7 @@ dependencies {
   compile externalDependency.guava
   compile externalDependency.commonsLang
   compile externalDependency.slf4j
-  compile externalDependency.log4j2
+  compile externalDependency.log4j
   compile externalDependency.commonsCli
   compile externalDependency.gson
   compile externalDependency.hiveCommon
diff --git 
a/gobblin-cluster/src/test/java/org/apache/gobblin/cluster/suite/IntegrationBasicSuite.java
 
b/gobblin-cluster/src/test/java/org/apache/gobblin/cluster/suite/IntegrationBasicSuite.java
index 88b17bb..7da4915 100644
--- 
a/gobblin-cluster/src/test/java/org/apache/gobblin/cluster/suite/IntegrationBasicSuite.java
+++ 
b/gobblin-cluster/src/test/java/org/apache/gobblin/cluster/suite/IntegrationBasicSuite.java
@@ -84,7 +84,7 @@ public class IntegrationBasicSuite {
   protected Collection<GobblinTaskRunner> taskDrivers = Lists.newArrayList();
   protected GobblinClusterManager manager;
 
-  // This filename should match the log file specified in log4j2.xml
+  // This filename should match the log file specified in log4j.xml
   public static Path jobLogOutputFile = 
Paths.get("gobblin-integration-test-log-dir/gobblin-cluster-test.log");;
   protected Path workPath;
   protected Path jobConfigPath;
@@ -197,10 +197,7 @@ public class IntegrationBasicSuite {
   }
 
   protected Collection<Config> getTaskDriverConfigs() {
-    URL url = Resources.getResource("BasicTaskDriver.conf");
-    Config taskDriverConfig = ConfigFactory.parseURL(url);
-    taskDriverConfig = taskDriverConfig.withFallback(getClusterConfig());
-    return Lists.newArrayList(taskDriverConfig.resolve());
+    return new ArrayList<>();
   }
 
   protected Collection<Config> getWorkerConfigs() {
@@ -326,4 +323,3 @@ public class IntegrationBasicSuite {
     HelixUtils.createGobblinHelixCluster(zkConnectionString, 
helix_cluster_name);
   }
 }
-
diff --git a/gobblin-cluster/src/test/resources/BasicTaskDriver.conf 
b/gobblin-cluster/src/test/resources/BasicTaskDriver.conf
index 80b1b25..84bc5b2 100644
--- a/gobblin-cluster/src/test/resources/BasicTaskDriver.conf
+++ b/gobblin-cluster/src/test/resources/BasicTaskDriver.conf
@@ -16,6 +16,4 @@
 #
 
 # Cluster / Helix configuration properties
-gobblin.cluster.taskDriver.enabled=true
-worker.instance.name=testTaskDriver1
-
+gobblin.cluster.taskDriver.enabled=true
\ No newline at end of file
diff --git a/gobblin-cluster/src/test/resources/log4j.xml 
b/gobblin-cluster/src/test/resources/log4j.xml
new file mode 100644
index 0000000..12b4ff9
--- /dev/null
+++ b/gobblin-cluster/src/test/resources/log4j.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~    http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/";>
+  <appender name="console" class="org.apache.log4j.ConsoleAppender">
+    <param name="Target" value="System.out" />
+    <layout class="org.apache.log4j.PatternLayout">
+      <param name="ConversionPattern"
+             value="%d{yyyy-MM-dd HH:mm:ss z} %-5p [%t] %C %L - %m%n" />
+    </layout>
+  </appender>
+
+  <appender name="file" class="org.apache.log4j.RollingFileAppender">
+    <param name="append" value="false" />
+    <param name="maxFileSize" value="1MB" />
+    <param name="maxBackupIndex" value="5" />
+    <param name="file" 
value="gobblin-integration-test-log-dir/gobblin-cluster-test.log" />
+    <layout class="org.apache.log4j.PatternLayout">
+      <param name="ConversionPattern"
+             value="%d{yyyy-MM-dd HH:mm:ss z} %-5p [%t] %C %L - %m%n" />
+    </layout>
+  </appender>
+
+  <root>
+    <level value="info" />
+    <appender-ref ref="file" />
+    <appender-ref ref="console" />
+  </root>
+
+  <!-- Swallow annoying exceptions when creating a configuration. -->
+  <logger name="org.apache.hadoop.conf.Configuration">
+    <level value="FATAL"/>
+  </logger>
+
+</log4j:configuration>
diff --git a/gobblin-cluster/src/test/resources/log4j2.xml 
b/gobblin-cluster/src/test/resources/log4j2.xml
deleted file mode 100644
index 94ac388..0000000
--- a/gobblin-cluster/src/test/resources/log4j2.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements.  See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to You under the Apache License, Version 2.0
-  ~ (the "License"); you may not use this file except in compliance with
-  ~ the License.  You may obtain a copy of the License at
-  ~
-  ~    http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<Configuration status="INFO">
-  <Appenders>
-    <Console name="Console" target="SYSTEM_OUT">
-      <PatternLayout pattern="%level{length=5} %d{DEFAULT} [%thread] 
%logger{1} - %msg%n" />
-    </Console>
-    <File name="test-log-file" 
fileName="gobblin-integration-test-log-dir/gobblin-cluster-test.log" 
immediateFlush="true" append="false">
-      <PatternLayout pattern="%level{length=5} %d{DEFAULT} [%thread] 
%logger{1} - %msg%n "/>
-    </File>
-  </Appenders>
-  <Loggers>
-    <Root level="info">
-      <AppenderRef ref="Console" />
-      <AppenderRef ref="test-log-file"/>
-    </Root>
-    <Logger name="org.apache.hadoop.conf.Configuration" level="FATAL"/>
-  </Loggers>
-</Configuration>
\ No newline at end of file
diff --git a/gobblin-runtime/src/test/resources/log4j2.xml 
b/gobblin-compaction/src/test/resources/log4j.xml
similarity index 52%
rename from gobblin-runtime/src/test/resources/log4j2.xml
rename to gobblin-compaction/src/test/resources/log4j.xml
index b05c549..b13377c 100644
--- a/gobblin-runtime/src/test/resources/log4j2.xml
+++ b/gobblin-compaction/src/test/resources/log4j.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8" ?>
 <!--
   ~ Licensed to the Apache Software Foundation (ASF) under one or more
   ~ contributor license agreements.  See the NOTICE file distributed with
@@ -16,16 +16,25 @@
   ~ limitations under the License.
   -->
 
-<Configuration status="INFO">
-  <Appenders>
-    <Console name="Console" target="SYSTEM_OUT">
-      <PatternLayout pattern="%level{length=5} %d{DEFAULT} [%thread] 
%logger{1} - %msg%n" />
-    </Console>
-  </Appenders>
-  <Loggers>
-    <Root level="info">
-      <AppenderRef ref="Console" />
-    </Root>
-    <Logger name="org.apache.hadoop.conf.Configuration" level="FATAL"/>
-  </Loggers>
-</Configuration>
\ No newline at end of file
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/";>
+  <appender name="console" class="org.apache.log4j.ConsoleAppender">
+    <param name="Target" value="System.out" />
+    <layout class="org.apache.log4j.PatternLayout">
+      <param name="ConversionPattern"
+        value="%d{yyyy-MM-dd HH:mm:ss z} %-5p [%t] %C %L - %m%n" />
+    </layout>
+  </appender>
+
+  <root>
+    <level value="info" />
+    <appender-ref ref="console" />
+  </root>
+
+  <!-- Swallow annoying exceptions when creating a configuration. -->
+  <logger name="org.apache.hadoop.conf.Configuration">
+    <level value="FATAL"/>
+  </logger>
+
+</log4j:configuration>
diff --git a/gobblin-config-management/gobblin-config-client/build.gradle 
b/gobblin-config-management/gobblin-config-client/build.gradle
index eeea04c..677d27a 100644
--- a/gobblin-config-management/gobblin-config-client/build.gradle
+++ b/gobblin-config-management/gobblin-config-client/build.gradle
@@ -24,7 +24,7 @@ dependencies {
     compile externalDependency.guava
     compile externalDependency.lombok
     compile externalDependency.slf4j
-    compile externalDependency.log4j2
+    compile externalDependency.log4j
     compile externalDependency.typesafeConfig
 
     testCompile externalDependency.testng
diff --git 
a/gobblin-config-management/gobblin-config-client/src/main/java/org/apache/gobblin/config/client/ConfigClient.java
 
b/gobblin-config-management/gobblin-config-client/src/main/java/org/apache/gobblin/config/client/ConfigClient.java
index 4a407ed..c125129 100644
--- 
a/gobblin-config-management/gobblin-config-client/src/main/java/org/apache/gobblin/config/client/ConfigClient.java
+++ 
b/gobblin-config-management/gobblin-config-client/src/main/java/org/apache/gobblin/config/client/ConfigClient.java
@@ -27,8 +27,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.TreeMap;
 
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.LogManager;
+import org.apache.log4j.Logger;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Optional;
@@ -60,7 +59,7 @@ import 
org.apache.gobblin.config.store.api.VersionDoesNotExistException;
  *
  */
 public class ConfigClient {
-  private static final Logger LOG = LogManager.getLogger(ConfigClient.class);
+  private static final Logger LOG = Logger.getLogger(ConfigClient.class);
 
   private final VersionStabilityPolicy policy;
 
diff --git 
a/gobblin-config-management/gobblin-config-client/src/main/java/org/apache/gobblin/config/client/ConfigStoreFactoryRegister.java
 
b/gobblin-config-management/gobblin-config-client/src/main/java/org/apache/gobblin/config/client/ConfigStoreFactoryRegister.java
index 3c7d857..dc3fe3b 100644
--- 
a/gobblin-config-management/gobblin-config-client/src/main/java/org/apache/gobblin/config/client/ConfigStoreFactoryRegister.java
+++ 
b/gobblin-config-management/gobblin-config-client/src/main/java/org/apache/gobblin/config/client/ConfigStoreFactoryRegister.java
@@ -23,12 +23,11 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.ServiceLoader;
 
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.LogManager;
+import org.apache.log4j.Logger;
 
 
 public class ConfigStoreFactoryRegister {
-  private static final Logger LOG = 
LogManager.getLogger(ConfigStoreFactoryRegister.class);
+  private static final Logger LOG = 
Logger.getLogger(ConfigStoreFactoryRegister.class);
 
   //key is the configStore scheme name, value is the ConfigStoreFactory
   @SuppressWarnings("rawtypes")
diff --git a/gobblin-config-management/gobblin-config-core/build.gradle 
b/gobblin-config-management/gobblin-config-core/build.gradle
index 65eb588..ec86566 100644
--- a/gobblin-config-management/gobblin-config-core/build.gradle
+++ b/gobblin-config-management/gobblin-config-core/build.gradle
@@ -22,7 +22,7 @@ dependencies {
     compile project(':gobblin-utility')
 
     compile externalDependency.slf4j
-    compile externalDependency.log4j2
+    compile externalDependency.log4j
     compile externalDependency.lombok
     compile externalDependency.typesafeConfig
     compile externalDependency.commonsLang
diff --git a/gobblin-data-management/build.gradle 
b/gobblin-data-management/build.gradle
index cbec9cd..4182c3a 100644
--- a/gobblin-data-management/build.gradle
+++ b/gobblin-data-management/build.gradle
@@ -31,7 +31,7 @@ dependencies {
   compile externalDependency.commonsLang3
   compile externalDependency.guava
   compile externalDependency.slf4j
-  compile externalDependency.log4j2
+  compile externalDependency.log4j
   compile externalDependency.jodaTime
   compile externalDependency.metricsCore
   compile externalDependency.mockito
diff --git 
a/gobblin-data-management/src/main/java/org/apache/gobblin/data/management/conversion/hive/source/HiveSource.java
 
b/gobblin-data-management/src/main/java/org/apache/gobblin/data/management/conversion/hive/source/HiveSource.java
index 7f77d78..eb16d59 100644
--- 
a/gobblin-data-management/src/main/java/org/apache/gobblin/data/management/conversion/hive/source/HiveSource.java
+++ 
b/gobblin-data-management/src/main/java/org/apache/gobblin/data/management/conversion/hive/source/HiveSource.java
@@ -33,10 +33,8 @@ import org.apache.hadoop.hive.metastore.IMetaStoreClient;
 import org.apache.hadoop.hive.ql.metadata.Partition;
 import org.apache.hadoop.hive.ql.metadata.Table;
 import org.apache.hadoop.hive.serde2.avro.AvroSerDe;
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.core.config.Configurator;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
 import org.joda.time.DateTime;
 
 import com.google.common.annotations.VisibleForTesting;
@@ -486,7 +484,10 @@ public class HiveSource implements Source {
   private void silenceHiveLoggers() {
     List<String> loggers = ImmutableList.of("org.apache.hadoop.hive", 
"org.apache.hive", "hive.ql.parse");
     for (String name : loggers) {
-      Configurator.setLevel(name, Level.WARN);
+      Logger logger = Logger.getLogger(name);
+      if (logger != null) {
+        logger.setLevel(Level.WARN);
+      }
     }
   }
 
diff --git a/gobblin-docs/case-studies/Hive-Distcp.md 
b/gobblin-docs/case-studies/Hive-Distcp.md
index e80a04b..3559ffb 100644
--- a/gobblin-docs/case-studies/Hive-Distcp.md
+++ b/gobblin-docs/case-studies/Hive-Distcp.md
@@ -11,7 +11,7 @@ This document will show an sample job config of running 
Gobblin hive distcp, and
 
 # Configure Hive Distcp Job
 
-Below is the sample job config of running Gobblin hive distcp. Gobblin job 
constructs and data flow are the same as [Gobblin 
distcp](http://gobblin.readthedocs.io/en/latest/adaptors/Gobblin-Distcp/). The 
only difference is the `gobblin.dataset.profile.class` and hive related 
properties.
+Below is the sample job config of running Gobblin hive distcp. Gobblin job 
constructs and data flow are the same as [Gobblin 
distcp](http://gobblin.readthedocs.io/en/latest/adaptors/Gobblin-Distcp/). The 
only difference is the `gobblin.data.profile.class` and hive related properties.
 
 ```
 job.name=SampleHiveDistcp
diff --git a/gobblin-docs/user-guide/Configuration-Properties-Glossary.md 
b/gobblin-docs/user-guide/Configuration-Properties-Glossary.md
index 3cbe156..199cea0 100644
--- a/gobblin-docs/user-guide/Configuration-Properties-Glossary.md
+++ b/gobblin-docs/user-guide/Configuration-Properties-Glossary.md
@@ -250,7 +250,7 @@ These properties are common properties that are used among 
different Source impl
 ### DistcpFileSplitter Properties <a name="DistcpFileSplitter-Properties"></a>
 | Name | Description | Required | Default Value |
 | --- | --- | --- | --- |
-| `gobblin.copy.split.enabled` | Will split files into block level granularity 
work units, which can be copied independently, then merged back together before 
publishing. To actually achieve splitting, the max split size property also 
needs to be set. Splitting should not be used for distcp jobs that require 
decryption/ungzipping. | No | False| 
+| `gobblin.copy.split.enabled` | Will split files into block level granularity 
work units, which can be copied independently, then merged back together before 
publishing. To actually achieve splitting, the max split size property also 
needs to be set. | No | False| 
 | `gobblin.copy.file.max.split.size` | If splitting is enabled, the split size 
(in bytes) for the block level work units is calculated based on rounding down 
the value of this property to the nearest integer multiple of the block size. 
If the value of this property is less than the block size, it gets adjusted up. 
| No | Long.MAX_VALUE
 
 ### WorkUnitBinPacker Properties <a name="WorkUnitBinPacker-Properties"></a>
diff --git a/gobblin-hive-registration/build.gradle 
b/gobblin-hive-registration/build.gradle
index de36554..472f359 100644
--- a/gobblin-hive-registration/build.gradle
+++ b/gobblin-hive-registration/build.gradle
@@ -33,7 +33,7 @@ dependencies {
   compile externalDependency.hiveMetastore
   compile externalDependency.hiveSerDe
   compile externalDependency.libthrift
-  compile externalDependency.log4j2
+  compile externalDependency.log4j
   compile externalDependency.slf4j
   compile externalDependency.commonsIo
   compile externalDependency.commonsLang3
diff --git a/gobblin-modules/gobblin-azkaban/build.gradle 
b/gobblin-modules/gobblin-azkaban/build.gradle
index 950927a..2f1dde6 100644
--- a/gobblin-modules/gobblin-azkaban/build.gradle
+++ b/gobblin-modules/gobblin-azkaban/build.gradle
@@ -30,7 +30,7 @@ dependencies {
   compile project(":gobblin-yarn")
 
   compile externalDependency.azkaban
-  compile externalDependency.log4j2
+  compile externalDependency.log4j
   compile externalDependency.guava
   compile externalDependency.commonsLang
   compile externalDependency.httpclient
diff --git 
a/gobblin-modules/gobblin-azkaban/src/main/java/org/apache/gobblin/azkaban/AzkabanGobblinDaemon.java
 
b/gobblin-modules/gobblin-azkaban/src/main/java/org/apache/gobblin/azkaban/AzkabanGobblinDaemon.java
index f447316..b9cdace 100644
--- 
a/gobblin-modules/gobblin-azkaban/src/main/java/org/apache/gobblin/azkaban/AzkabanGobblinDaemon.java
+++ 
b/gobblin-modules/gobblin-azkaban/src/main/java/org/apache/gobblin/azkaban/AzkabanGobblinDaemon.java
@@ -19,7 +19,6 @@ package org.apache.gobblin.azkaban;
 
 import java.util.List;
 import java.util.Properties;
-import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
 
 import com.google.common.collect.Lists;
@@ -36,11 +35,7 @@ import azkaban.jobExecutor.AbstractJob;
 
 public class AzkabanGobblinDaemon extends AbstractJob {
 
-  /*
-  since Azkaban constructor expects specifically logger from Log4j, we can not 
use log4j2 logger here
-  so keeping use of log4j logger, should update to Log4j2 logger when Azkaban 
lib updates it.
-   */
-  private static final Logger LOG = 
LogManager.getLogger(AzkabanGobblinDaemon.class);
+  private static final Logger LOG = 
Logger.getLogger(AzkabanGobblinDaemon.class);
 
   private SchedulerDaemon daemon;
 
diff --git 
a/gobblin-modules/gobblin-azkaban/src/main/java/org/apache/gobblin/data/management/trash/TrashCollectorJob.java
 
b/gobblin-modules/gobblin-azkaban/src/main/java/org/apache/gobblin/data/management/trash/TrashCollectorJob.java
index cdbb630..bae4804 100644
--- 
a/gobblin-modules/gobblin-azkaban/src/main/java/org/apache/gobblin/data/management/trash/TrashCollectorJob.java
+++ 
b/gobblin-modules/gobblin-azkaban/src/main/java/org/apache/gobblin/data/management/trash/TrashCollectorJob.java
@@ -25,7 +25,6 @@ import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.util.Tool;
 import org.apache.hadoop.util.ToolRunner;
 import org.apache.log4j.Logger;
-import org.apache.log4j.LogManager;
 
 import azkaban.jobExecutor.AbstractJob;
 import azkaban.utils.Props;
@@ -44,11 +43,11 @@ public class TrashCollectorJob extends AbstractJob 
implements Tool {
   }
 
   public TrashCollectorJob(String id) {
-    super(id, LogManager.getLogger(TrashCollectorJob.class));
+    super(id, Logger.getLogger(TrashCollectorJob.class));
   }
 
   public TrashCollectorJob(String id, Props props) throws IOException {
-    super(id, LogManager.getLogger(TrashCollectorJob.class));
+    super(id, Logger.getLogger(TrashCollectorJob.class));
     this.conf = new Configuration();
     this.trash = createTrash(props);
   }
diff --git 
a/gobblin-modules/gobblin-kafka-common/src/test/java/org/apache/gobblin/metrics/kafka/LoggingPusherTest.java
 
b/gobblin-modules/gobblin-kafka-common/src/test/java/org/apache/gobblin/metrics/kafka/LoggingPusherTest.java
index 3b4d4f0..e1635ea 100644
--- 
a/gobblin-modules/gobblin-kafka-common/src/test/java/org/apache/gobblin/metrics/kafka/LoggingPusherTest.java
+++ 
b/gobblin-modules/gobblin-kafka-common/src/test/java/org/apache/gobblin/metrics/kafka/LoggingPusherTest.java
@@ -19,14 +19,10 @@ package org.apache.gobblin.metrics.kafka;
 import java.util.ArrayList;
 import java.util.List;
 
-//import org.apache.log4j.LogManager;
-//import org.apache.log4j.Logger;
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.core.Logger;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.core.LogEvent;
-import org.apache.logging.log4j.core.appender.AbstractAppender;
-import org.apache.logging.log4j.core.config.Configurator;
+import org.apache.log4j.AppenderSkeleton;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+import org.apache.log4j.spi.LoggingEvent;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
@@ -42,9 +38,8 @@ public class LoggingPusherTest {
   @Test
   public void testKafkaReporter() {
 
-    TestAppender testAppender = new TestAppender("TestAppender" );
-    Logger logger = (org.apache.logging.log4j.core.Logger) 
LogManager.getLogger(LoggingPusher.class.getName());
-    Configurator.setRootLevel(Level.INFO);
+    TestAppender testAppender = new TestAppender();
+    Logger logger = LogManager.getLogger(LoggingPusher.class.getName());
     logger.addAppender(testAppender);
 
     KeyValuePusher<String, String> loggingPusher =
@@ -54,26 +49,26 @@ public class LoggingPusherTest {
     
loggingPusher.pushKeyValueMessages(ImmutableList.of(org.apache.commons.lang3.tuple.Pair.of("key",
 "message3")));
 
     Assert.assertEquals(testAppender.events.size(), 3);
-    
Assert.assertEquals(testAppender.events.get(0).getMessage().getFormattedMessage(),
 "Pushing to broker:topic: message1");
-    
Assert.assertEquals(testAppender.events.get(1).getMessage().getFormattedMessage(),
 "Pushing to broker:topic: message2");
-    
Assert.assertEquals(testAppender.events.get(2).getMessage().getFormattedMessage(),
 "Pushing to broker:topic: key - message3");
+    Assert.assertEquals(testAppender.events.get(0).getRenderedMessage(), 
"Pushing to broker:topic: message1");
+    Assert.assertEquals(testAppender.events.get(1).getRenderedMessage(), 
"Pushing to broker:topic: message2");
+    Assert.assertEquals(testAppender.events.get(2).getRenderedMessage(), 
"Pushing to broker:topic: key - message3");
 
     logger.removeAppender(testAppender);
   }
 
-  public class TestAppender extends AbstractAppender {
+  private class TestAppender extends AppenderSkeleton {
+    List<LoggingEvent> events = new ArrayList<LoggingEvent>();
 
-    private List<LogEvent> events = new ArrayList<LogEvent>();
+    public void close() {
+    }
 
-    public TestAppender(String name) {
-      super(name, null, null);
+    public boolean requiresLayout() {
+      return false;
     }
 
     @Override
-    public void append(LogEvent event) {
+    protected void append(LoggingEvent event) {
       events.add(event);
     }
   }
-
-
 }
diff --git a/gobblin-runtime/build.gradle b/gobblin-runtime/build.gradle
index 95db102..b28db6b 100644
--- a/gobblin-runtime/build.gradle
+++ b/gobblin-runtime/build.gradle
@@ -36,29 +36,22 @@ compileJava {
 }
 
 dependencies {
-  compile externalDependency.commonsCli
-
   compile project(":gobblin-api")
   compile project(":gobblin-core")
   compile project(":gobblin-hive-registration")
   compile project(":gobblin-metrics-libs:gobblin-metrics")
   compile project(":gobblin-metastore")
   compile project(":gobblin-utility")
-  compile(project(path: ':gobblin-rest-service:gobblin-rest-api', 
configuration: 'restClient')) {
-    exclude group: 'commons-cli', module: 'commons-cli'
-  }
-  compile(project(path: ':gobblin-rest-service:gobblin-rest-api', 
configuration: 'dataTemplate')) {
-    exclude group: 'commons-cli', module: 'commons-cli'
-  }
-  compile(project(":gobblin-rest-service:gobblin-rest-server")) {
-    exclude group: 'commons-cli', module: 'commons-cli'
-  }
+  compile project(path: ':gobblin-rest-service:gobblin-rest-api', 
configuration: 'restClient')
+  compile project(path: ':gobblin-rest-service:gobblin-rest-api', 
configuration: 'dataTemplate')
+  compile project(":gobblin-rest-service:gobblin-rest-server")
   compile project(":gobblin-modules:google-ingestion")
 
   compile externalDependency.avro
   compile externalDependency.avroMapredH2
   compile externalDependency.calciteCore
   //compile externalDependency.calciteAvatica
+  compile externalDependency.commonsCli
   compile externalDependency.commonsConfiguration
   compile externalDependency.commonsEmail
   compile externalDependency.commonsLang
@@ -77,7 +70,7 @@ dependencies {
   compile externalDependency.jacksonMapper
   compile externalDependency.javaxInject
   compile externalDependency.jodaTime
-  compile externalDependency.log4j2
+  compile externalDependency.log4j
   compile externalDependency.lombok
   compile externalDependency.metricsCore
   compile externalDependency.metricsJvm
@@ -206,4 +199,3 @@ task pullFileConverter(type: JavaExec) {
   }
 
 }
-
diff --git 
a/gobblin-runtime/src/test/java/org/apache/gobblin/runtime/locks/JobLockTest.java
 
b/gobblin-runtime/src/test/java/org/apache/gobblin/runtime/locks/JobLockTest.java
index 089efdf..8d03010 100644
--- 
a/gobblin-runtime/src/test/java/org/apache/gobblin/runtime/locks/JobLockTest.java
+++ 
b/gobblin-runtime/src/test/java/org/apache/gobblin/runtime/locks/JobLockTest.java
@@ -67,7 +67,7 @@ public abstract class JobLockTest {
         public void run() {
           final Logger log = 
LoggerFactory.getLogger("testLocalJobLock.thread1");
           if (debugEnabled.get()) {
-            
org.apache.log4j.LogManager.getLogger(log.getName()).setLevel(Level.DEBUG);
+            
org.apache.log4j.Logger.getLogger(log.getName()).setLevel(Level.DEBUG);
           }
           try {
             stepsLock.lock();
@@ -106,7 +106,7 @@ public abstract class JobLockTest {
         public void run() {
           final Logger log = 
LoggerFactory.getLogger("testLocalJobLock.thread2");
           if (debugEnabled.get()) {
-            
org.apache.log4j.LogManager.getLogger(log.getName()).setLevel(Level.DEBUG);
+            
org.apache.log4j.Logger.getLogger(log.getName()).setLevel(Level.DEBUG);
           }
           try {
             stepsLock.lock();
diff --git 
a/gobblin-runtime/src/test/java/org/apache/gobblin/runtime/mapreduce/MRTaskFactoryTest.java
 
b/gobblin-runtime/src/test/java/org/apache/gobblin/runtime/mapreduce/MRTaskFactoryTest.java
index 1ee5d87..dc83dca 100644
--- 
a/gobblin-runtime/src/test/java/org/apache/gobblin/runtime/mapreduce/MRTaskFactoryTest.java
+++ 
b/gobblin-runtime/src/test/java/org/apache/gobblin/runtime/mapreduce/MRTaskFactoryTest.java
@@ -47,12 +47,11 @@ import org.apache.hadoop.mapreduce.Mapper;
 import org.apache.hadoop.mapreduce.Reducer;
 import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
-import org.apache.logging.log4j.core.LogEvent;
-import org.apache.logging.log4j.core.Logger;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.core.appender.AbstractAppender;
-import org.apache.logging.log4j.core.config.Configurator;
+import org.apache.log4j.AppenderSkeleton;
+import org.apache.log4j.Level;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+import org.apache.log4j.spi.LoggingEvent;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
@@ -77,9 +76,9 @@ public class MRTaskFactoryTest {
     Assert.assertTrue(job2Dir.mkdir());
     writeFileWithContent(job2Dir, "file1", "word1 word2 word2");
 
-    TestAppender testAppender = new TestAppender(MRTask.class.getName());
-    Logger logger = (Logger) LogManager.getLogger(MRTask.class.getName());
-    Configurator.setRootLevel(Level.INFO);
+    TestAppender testAppender = new TestAppender();
+    Logger logger = LogManager.getLogger(MRTask.class.getName());
+    logger.setLevel(Level.INFO);
     logger.addAppender(testAppender);
 
     EmbeddedGobblin embeddedGobblin = new EmbeddedGobblin("WordCounter")
@@ -91,7 +90,7 @@ public class MRTaskFactoryTest {
     logger.removeAppender(testAppender);
 
     Assert.assertTrue(result.isSuccessful());
-    Assert.assertTrue(testAppender.events.stream().anyMatch(e -> 
e.getMessage().getFormattedMessage()
+    Assert.assertTrue(testAppender.events.stream().anyMatch(e -> 
e.getRenderedMessage()
         .startsWith("MR tracking URL http://localhost:8080/ for job 
WordCount_job1")));
 
     File output1 = new File(new File(outputSuperPath, "job1"), "part-r-00000");
@@ -209,15 +208,12 @@ public class MRTaskFactoryTest {
     }
   }
 
-  public class TestAppender extends AbstractAppender {
-    private List<LogEvent> events = new ArrayList<LogEvent>();
-
-    public TestAppender(String name) {
-      super(name, null, null);
-    }
-
+  private class TestAppender extends AppenderSkeleton {
+    List<LoggingEvent> events = new ArrayList<>();
+    public void close() {}
+    public boolean requiresLayout() {return false;}
     @Override
-    public void append(LogEvent event) {
+    protected void append(LoggingEvent event) {
       events.add(event);
     }
   }
diff --git a/gobblin-compaction/src/test/resources/log4j2.xml 
b/gobblin-runtime/src/test/resources/log4j.xml
similarity index 52%
rename from gobblin-compaction/src/test/resources/log4j2.xml
rename to gobblin-runtime/src/test/resources/log4j.xml
index b05c549..cdb6dce 100644
--- a/gobblin-compaction/src/test/resources/log4j2.xml
+++ b/gobblin-runtime/src/test/resources/log4j.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8" ?>
 <!--
   ~ Licensed to the Apache Software Foundation (ASF) under one or more
   ~ contributor license agreements.  See the NOTICE file distributed with
@@ -16,16 +16,25 @@
   ~ limitations under the License.
   -->
 
-<Configuration status="INFO">
-  <Appenders>
-    <Console name="Console" target="SYSTEM_OUT">
-      <PatternLayout pattern="%level{length=5} %d{DEFAULT} [%thread] 
%logger{1} - %msg%n" />
-    </Console>
-  </Appenders>
-  <Loggers>
-    <Root level="info">
-      <AppenderRef ref="Console" />
-    </Root>
-    <Logger name="org.apache.hadoop.conf.Configuration" level="FATAL"/>
-  </Loggers>
-</Configuration>
\ No newline at end of file
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/";>
+  <appender name="console" class="org.apache.log4j.ConsoleAppender">
+    <param name="Target" value="System.out" />
+    <layout class="org.apache.log4j.PatternLayout">
+      <param name="ConversionPattern"
+        value="%d{yyyy-MM-dd HH:mm:ss z} %-5p [%t] %C %L - %m%n" />
+    </layout>
+  </appender>
+
+  <root>
+    <level value="warn" />
+    <appender-ref ref="console" />
+  </root>
+
+  <!-- Swallow annoying exceptions when creating a configuration. -->
+  <logger name="org.apache.hadoop.conf.Configuration">
+    <level value="FATAL"/>
+  </logger>
+
+</log4j:configuration>
diff --git a/gobblin-service/build.gradle b/gobblin-service/build.gradle
index d931a4a..bafa6d1 100644
--- a/gobblin-service/build.gradle
+++ b/gobblin-service/build.gradle
@@ -61,7 +61,7 @@ dependencies {
   compile externalDependency.jodaTime
   compile externalDependency.jgrapht
   compile externalDependency.kafka08
-  compile externalDependency.log4j2
+  compile externalDependency.log4j
   compile externalDependency.lombok
   compile externalDependency.metricsCore
   compile externalDependency.metricsJvm
diff --git 
a/gobblin-test-harness/src/test/java/org/apache/gobblin/TaskErrorIntegrationTest.java
 
b/gobblin-test-harness/src/test/java/org/apache/gobblin/TaskErrorIntegrationTest.java
index 02aebb9..9110d20 100644
--- 
a/gobblin-test-harness/src/test/java/org/apache/gobblin/TaskErrorIntegrationTest.java
+++ 
b/gobblin-test-harness/src/test/java/org/apache/gobblin/TaskErrorIntegrationTest.java
@@ -32,10 +32,10 @@ import org.apache.gobblin.runtime.task.BaseAbstractTask;
 import org.apache.gobblin.runtime.task.TaskFactory;
 import org.apache.gobblin.runtime.task.TaskIFace;
 import org.apache.gobblin.runtime.task.TaskUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.core.Logger;
-import org.apache.logging.log4j.core.LogEvent;
-import org.apache.logging.log4j.core.appender.AbstractAppender;
+import org.apache.log4j.AppenderSkeleton;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+import org.apache.log4j.spi.LoggingEvent;
 import org.jboss.byteman.contrib.bmunit.BMNGRunner;
 import org.jboss.byteman.contrib.bmunit.BMRule;
 import org.testng.Assert;
@@ -73,8 +73,8 @@ public class TaskErrorIntegrationTest extends BMNGRunner {
   @Test
   public void extractorCreationError()
       throws Exception {
-    TestAppender testAppender = new 
TestAppender(GobblinMultiTaskAttempt.class.getName() + "-noattempt");
-    Logger logger = (Logger) 
LogManager.getLogger(GobblinMultiTaskAttempt.class.getName() + "-noattempt");
+    TestAppender testAppender = new TestAppender();
+    Logger logger = 
LogManager.getLogger(GobblinMultiTaskAttempt.class.getName() + "-noattempt");
     logger.addAppender(testAppender);
 
     Properties jobProperties =
@@ -85,7 +85,8 @@ public class TaskErrorIntegrationTest extends BMNGRunner {
 
     GobblinLocalJobLauncherUtils.invokeLocalJobLauncher(jobProperties);
 
-    Assert.assertTrue(testAppender.events.stream().anyMatch(e -> 
e.getMessage().getFormattedMessage().startsWith("Could not create task for 
workunit")));
+    Assert.assertTrue(testAppender.events.stream().anyMatch(e -> 
e.getRenderedMessage()
+        .startsWith("Could not create task for workunit")));
 
     logger.removeAppender(testAppender);
   }
@@ -101,8 +102,8 @@ public class TaskErrorIntegrationTest extends BMNGRunner {
       action = "throw new RuntimeException(\"Exception for 
testErrorDuringSubmission\")")
   public void testErrorDuringSubmission()
       throws Exception {
-    TestAppender testAppender = new 
TestAppender(GobblinMultiTaskAttempt.class.getName() + "-noattempt");
-    Logger logger = (Logger) 
LogManager.getLogger(GobblinMultiTaskAttempt.class.getName() + "-noattempt");
+    TestAppender testAppender = new TestAppender();
+    Logger logger = 
LogManager.getLogger(GobblinMultiTaskAttempt.class.getName() + "-noattempt");
     logger.addAppender(testAppender);
 
     Properties jobProperties =
@@ -113,7 +114,7 @@ public class TaskErrorIntegrationTest extends BMNGRunner {
 
     GobblinLocalJobLauncherUtils.invokeLocalJobLauncher(jobProperties);
 
-    Assert.assertTrue(testAppender.events.stream().anyMatch(e -> 
e.getMessage().getFormattedMessage()
+    Assert.assertTrue(testAppender.events.stream().anyMatch(e -> 
e.getRenderedMessage()
         .startsWith("Could not submit task for workunit")));
 
     logger.removeAppender(testAppender);
@@ -121,8 +122,8 @@ public class TaskErrorIntegrationTest extends BMNGRunner {
 
   @Test
   public void testCustomizedTaskFrameworkFailureInTaskCreation() throws 
Exception {
-    TestAppender testAppender = new 
TestAppender(GobblinMultiTaskAttempt.class.getName() + "-noattempt");
-    Logger logger = (Logger) 
LogManager.getLogger(GobblinMultiTaskAttempt.class.getName() + "-noattempt");
+    TestAppender testAppender = new TestAppender();
+    Logger logger = 
LogManager.getLogger(GobblinMultiTaskAttempt.class.getName() + "-noattempt");
     logger.addAppender(testAppender);
 
     Properties jobProperties =
@@ -130,7 +131,7 @@ public class TaskErrorIntegrationTest extends BMNGRunner {
     jobProperties.setProperty(ConfigurationKeys.SOURCE_CLASS_KEY, 
CustomizedTaskTestSource.class.getName());
 
     GobblinLocalJobLauncherUtils.invokeLocalJobLauncher(jobProperties);
-    Assert.assertTrue(testAppender.events.stream().anyMatch(e -> 
e.getMessage().getFormattedMessage()
+    Assert.assertTrue(testAppender.events.stream().anyMatch(e -> 
e.getRenderedMessage()
         .startsWith("Encountering memory error")));
 
     logger.removeAppender(testAppender);
@@ -231,16 +232,12 @@ public class TaskErrorIntegrationTest extends BMNGRunner {
     }
   }
 
-  public class TestAppender extends AbstractAppender {
-
-    private List<LogEvent> events = new ArrayList<LogEvent>();
-
-    public TestAppender(String name) {
-      super(name, null, null);
-    }
-
+  private class TestAppender extends AppenderSkeleton {
+    List<LoggingEvent> events = new ArrayList<LoggingEvent>();
+    public void close() {}
+    public boolean requiresLayout() {return false;}
     @Override
-    public void append(LogEvent event) {
+    protected void append(LoggingEvent event) {
       events.add(event);
     }
   }
diff --git a/gobblin-utility/build.gradle b/gobblin-utility/build.gradle
index 3fddeba..485641b 100644
--- a/gobblin-utility/build.gradle
+++ b/gobblin-utility/build.gradle
@@ -29,7 +29,6 @@ dependencies {
   compile externalDependency.commonsLang
   compile externalDependency.guava
   compile externalDependency.slf4j
-  compile externalDependency.log4j2
   compile externalDependency.avro
   compile externalDependency.hiveMetastore
   compile externalDependency.jodaTime
diff --git 
a/gobblin-utility/src/main/java/org/apache/gobblin/util/AvroFlattener.java 
b/gobblin-utility/src/main/java/org/apache/gobblin/util/AvroFlattener.java
index 4801ec7..771026c 100644
--- a/gobblin-utility/src/main/java/org/apache/gobblin/util/AvroFlattener.java
+++ b/gobblin-utility/src/main/java/org/apache/gobblin/util/AvroFlattener.java
@@ -25,8 +25,7 @@ import java.util.Map;
 import org.apache.avro.AvroRuntimeException;
 import org.apache.avro.Schema;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.LogManager;
+import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonNode;
 
 import com.google.common.base.Optional;
@@ -117,7 +116,7 @@ import com.google.common.collect.ImmutableList;
  */
 public class AvroFlattener {
 
-  private static final Logger LOG = LogManager.getLogger(AvroFlattener.class);
+  private static final Logger LOG = Logger.getLogger(AvroFlattener.class);
 
   private static final String FLATTENED_NAME_JOINER = "__";
   private static final String FLATTENED_SOURCE_JOINER = ".";
diff --git 
a/gobblin-utility/src/main/java/org/apache/gobblin/util/hadoop/TokenUtils.java 
b/gobblin-utility/src/main/java/org/apache/gobblin/util/hadoop/TokenUtils.java
index eb3ab3d..8c70a13 100644
--- 
a/gobblin-utility/src/main/java/org/apache/gobblin/util/hadoop/TokenUtils.java
+++ 
b/gobblin-utility/src/main/java/org/apache/gobblin/util/hadoop/TokenUtils.java
@@ -55,8 +55,7 @@ import org.apache.hadoop.security.token.Token;
 import org.apache.hadoop.yarn.factory.providers.RecordFactoryProvider;
 import org.apache.hadoop.yarn.ipc.YarnRPC;
 import org.apache.hadoop.yarn.util.ConverterUtils;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.LogManager;
+import org.apache.log4j.Logger;
 import org.apache.thrift.TException;
 
 
@@ -69,7 +68,7 @@ import org.apache.thrift.TException;
  */
 public class TokenUtils {
 
-  private static final Logger LOG = LogManager.getLogger(TokenUtils.class);
+  private static final Logger LOG = Logger.getLogger(TokenUtils.class);
 
   private static final String USER_TO_PROXY = "tokens.user.to.proxy";
   private static final String KEYTAB_USER = "keytab.user";
diff --git a/gobblin-yarn/build.gradle b/gobblin-yarn/build.gradle
index fe37dcf..4d28eec 100644
--- a/gobblin-yarn/build.gradle
+++ b/gobblin-yarn/build.gradle
@@ -38,7 +38,7 @@ dependencies {
   compile externalDependency.guava
   compile externalDependency.commonsLang
   compile externalDependency.slf4j
-  compile externalDependency.log4j2
+  compile externalDependency.log4j
   compile externalDependency.lombok
   compile externalDependency.commonsCli
   compile externalDependency.gson
diff --git a/gradle/scripts/computeVersions.gradle 
b/gradle/scripts/computeVersions.gradle
index 1d53e5d..10fdf25 100644
--- a/gradle/scripts/computeVersions.gradle
+++ b/gradle/scripts/computeVersions.gradle
@@ -65,6 +65,5 @@ println "Detected Gradle version major=" + gradleVersionMajor 
+ " minor=" + grad
 ext.dropwizardMetricsVersion = '3.2.3'
 ext.findBugsVersion = '3.0.0'
 ext.googleVersion = '1.22.0'
-ext.slf4jVersion = '1.7.26'
-ext.log4j2Version = '2.12.0'
-
+ext.slf4jVersion = '1.7.21'
+ext.log4jVersion = '1.2.17'
diff --git a/gradle/scripts/dependencyDefinitions.gradle 
b/gradle/scripts/dependencyDefinitions.gradle
index d649a61..8ef4b3a 100644
--- a/gradle/scripts/dependencyDefinitions.gradle
+++ b/gradle/scripts/dependencyDefinitions.gradle
@@ -172,13 +172,12 @@ ext.externalDependency = [
     'reactivex': 'io.reactivex.rxjava2:rxjava:2.1.0',
     "slf4j": [
         "org.slf4j:slf4j-api:" + slf4jVersion,
+        "org.slf4j:slf4j-log4j12:" + slf4jVersion,
         "org.slf4j:jcl-over-slf4j:" + slf4jVersion
     ],
-    "log4j2": [
-            "org.apache.logging.log4j:log4j-api:"+log4j2Version,
-            "org.apache.logging.log4j:log4j-core:" + log4j2Version,
-            "org.apache.logging.log4j:log4j-1.2-api:" + log4j2Version,
-            "org.apache.logging.log4j:log4j-slf4j-impl:" + log4j2Version,
+    "log4j": [
+        "log4j:log4j:" + log4jVersion,
+        "log4j:apache-log4j-extras:" + log4jVersion
     ],
     "postgresConnector": "org.postgresql:postgresql:42.1.4",
     "assertj": 'org.assertj:assertj-core:3.8.0',
diff --git a/gradle/scripts/globalDependencies.gradle 
b/gradle/scripts/globalDependencies.gradle
index ca0ceff..270a121 100644
--- a/gradle/scripts/globalDependencies.gradle
+++ b/gradle/scripts/globalDependencies.gradle
@@ -21,7 +21,6 @@ import javax.tools.ToolProvider
 subprojects {
   plugins.withType(JavaPlugin) {
     configurations {
-
       compile
       dependencies {
         if (!project.name.contains('gobblin-elasticsearch-deps')) {
@@ -41,23 +40,10 @@ subprojects {
             force = true
           }
 
-        if (!project.name.contains('gobblin-data-management')){
-            // Apache Hive 1.2 still uses log4j, specifically WriterAppender 
that is not bridged in log4j2
-            // so we still need this transitive dependency, This can be 
removed while migrating to Hive 2.x since
-            // it has moved to log4j2 already.
-          all*.exclude group: 'log4j', module: 'log4j'
-        }
-
         // Required to add JDK's tool jar, which is required to run byteman 
tests.
         testCompile (files(((URLClassLoader) 
ToolProvider.getSystemToolClassLoader()).getURLs()))
       }
       all*.exclude group: 'org.apache.calcite', module: 'calcite-avatica' // 
replaced by org.apache.calcite.avatica:avatica-core
-
-      // To make sure there is no log4j lib to interfere with log4j2 
libraries. This is required for log4j2 migration.
-      all*.exclude group: 'org.slf4j', module: 'slf4j-log4j12'
-      all*.exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j'
-      all*.exclude group: 'log4j', module: 'apache-log4j-extras'
     }
   }
 }
-

Reply via email to