http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/replication/message/TakeoverPartitionsRequestMessage.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/replication/message/TakeoverPartitionsRequestMessage.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/replication/message/TakeoverPartitionsRequestMessage.java
index ea9ac55..86be516 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/replication/message/TakeoverPartitionsRequestMessage.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/replication/message/TakeoverPartitionsRequestMessage.java
@@ -19,8 +19,6 @@
 package org.apache.asterix.app.replication.message;
 
 import java.io.IOException;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import org.apache.asterix.common.api.INcApplicationContext;
 import org.apache.asterix.common.exceptions.ACIDException;
@@ -29,11 +27,14 @@ import 
org.apache.asterix.common.messaging.api.INcAddressedMessage;
 import org.apache.asterix.common.replication.INCLifecycleMessage;
 import org.apache.asterix.common.replication.IRemoteRecoveryManager;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 public class TakeoverPartitionsRequestMessage implements INCLifecycleMessage, 
INcAddressedMessage {
 
     private static final long serialVersionUID = 1L;
-    private static final Logger LOGGER = 
Logger.getLogger(TakeoverPartitionsRequestMessage.class.getName());
+    private static final Logger LOGGER = LogManager.getLogger();
     private final Integer[] partitions;
     private final long requestId;
     private final String nodeId;
@@ -81,7 +82,7 @@ public class TakeoverPartitionsRequestMessage implements 
INCLifecycleMessage, IN
                 IRemoteRecoveryManager remoteRecoeryManager = 
appContext.getRemoteRecoveryManager();
                 remoteRecoeryManager.takeoverPartitons(partitions);
             } catch (IOException | ACIDException e) {
-                LOGGER.log(Level.SEVERE, "Failure taking over partitions", e);
+                LOGGER.log(Level.ERROR, "Failure taking over partitions", e);
                 hde = HyracksDataException.suppress(hde, e);
             } finally {
                 //send response after takeover is completed
@@ -90,7 +91,7 @@ public class TakeoverPartitionsRequestMessage implements 
INCLifecycleMessage, IN
                 try {
                     broker.sendMessageToCC(reponse);
                 } catch (Exception e) {
-                    LOGGER.log(Level.SEVERE, "Failure taking over partitions", 
e);
+                    LOGGER.log(Level.ERROR, "Failure taking over partitions", 
e);
                     hde = HyracksDataException.suppress(hde, e);
                 }
             }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
index 5609605..c69f5dc 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
@@ -40,8 +40,6 @@ import java.util.Map.Entry;
 import java.util.Properties;
 import java.util.Set;
 import java.util.concurrent.ExecutorService;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import org.apache.asterix.active.ActivityState;
 import org.apache.asterix.active.EntityId;
@@ -210,6 +208,9 @@ import 
org.apache.hyracks.control.common.job.profiling.om.JobProfile;
 import org.apache.hyracks.control.common.job.profiling.om.JobletProfile;
 import org.apache.hyracks.control.common.job.profiling.om.TaskProfile;
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 /*
  * Provides functionality for executing a batch of Query statements (queries 
included)
@@ -217,7 +218,7 @@ import 
org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory;
  */
 public class QueryTranslator extends AbstractLangTranslator implements 
IStatementExecutor {
 
-    private static final Logger LOGGER = 
Logger.getLogger(QueryTranslator.class.getName());
+    private static final Logger LOGGER = LogManager.getLogger();
 
     public static final boolean IS_DEBUG_MODE = false;// true
     protected final List<Statement> statements;
@@ -2061,7 +2062,7 @@ public class QueryTranslator extends 
AbstractLangTranslator implements IStatemen
                 MetadataManager.INSTANCE.getFeed(mdTxnCtx, 
feedId.getDataverse(), feedId.getEntityName()));
         runJob(hcc, spec);
         MetadataManager.INSTANCE.dropFeed(mdTxnCtx, feed.getDataverseName(), 
feed.getFeedName());
-        if (LOGGER.isLoggable(Level.INFO)) {
+        if (LOGGER.isInfoEnabled()) {
             LOGGER.info("Removed feed " + feedId);
         }
     }
@@ -2458,7 +2459,7 @@ public class QueryTranslator extends 
AbstractLangTranslator implements IStatemen
                 ResultUtil.printStatus(sessionOutput, 
AbstractQueryApiServlet.ResultStatus.FAILED);
                 ResultUtil.printError(sessionOutput.out(), e);
             } else {
-                GlobalConfig.ASTERIX_LOGGER.log(Level.SEVERE,
+                GlobalConfig.ASTERIX_LOGGER.log(Level.ERROR,
                         resultDelivery.name() + " job with id " + 
jobId.getValue() + " " + "failed", e);
             }
         } finally {
@@ -2887,7 +2888,7 @@ public class QueryTranslator extends 
AbstractLangTranslator implements IStatemen
                     toDataset.getHints(), toDataset.getDatasetType(), idd, 
withRecord, false);
             this.handleCreateDatasetStatement(metadataProvider, 
createToDataset, hcc, null);
         } catch (Exception e) {
-            LOGGER.log(Level.WARNING, e.getMessage(), e);
+            LOGGER.log(Level.WARN, e.getMessage(), e);
             throw new AlgebricksException("Error cleaning the result dataset. 
This should not happen.");
         }
 
@@ -2941,7 +2942,7 @@ public class QueryTranslator extends 
AbstractLangTranslator implements IStatemen
             while ((line = in.readLine()) != null) {
                 LOGGER.info(line);
                 if (line.contains("Exception") || line.contains("Error")) {
-                    LOGGER.severe(line);
+                    LOGGER.error(line);
                     if (line.contains("Connection refused")) {
                         throw new AlgebricksException(
                                 "The connection to your Pregelix cluster was 
refused. Is it running? "
@@ -3045,7 +3046,7 @@ public class QueryTranslator extends 
AbstractLangTranslator implements IStatemen
     public static void abort(Exception rootE, Exception parentE, 
MetadataTransactionContext mdTxnCtx) {
         try {
             if (IS_DEBUG_MODE) {
-                LOGGER.log(Level.SEVERE, rootE.getMessage(), rootE);
+                LOGGER.log(Level.ERROR, rootE.getMessage(), rootE);
             }
             if (mdTxnCtx != null) {
                 MetadataManager.INSTANCE.abortTransaction(mdTxnCtx);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
index 40d8996..670b2bd 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
@@ -30,8 +30,6 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.concurrent.ConcurrentMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import org.apache.asterix.api.http.ctx.StatementExecutorContext;
 import org.apache.asterix.api.http.server.ActiveStatsApiServlet;
@@ -98,10 +96,14 @@ import 
org.apache.hyracks.control.common.controllers.CCConfig;
 import org.apache.hyracks.http.api.IServlet;
 import org.apache.hyracks.http.server.HttpServer;
 import org.apache.hyracks.http.server.WebManager;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.config.Configurator;
 
 public class CCApplication extends BaseCCApplication {
 
-    private static final Logger LOGGER = 
Logger.getLogger(CCApplication.class.getName());
+    private static final Logger LOGGER = LogManager.getLogger();
     private static IAsterixStateProxy proxy;
     protected ICCServiceContext ccServiceCtx;
     protected CCExtensionManager ccExtensionManager;
@@ -130,9 +132,7 @@ public class CCApplication extends BaseCCApplication {
 
         
configureLoggingLevel(ccServiceCtx.getAppConfig().getLoggingLevel(ExternalProperties.Option.LOG_LEVEL));
 
-        if (LOGGER.isLoggable(Level.INFO)) {
-            LOGGER.info("Starting Asterix cluster controller");
-        }
+        LOGGER.info("Starting Asterix cluster controller");
 
         String strIP = 
ccServiceCtx.getCCContext().getClusterControllerInfo().getClientNetAddress();
         int port = 
ccServiceCtx.getCCContext().getClusterControllerInfo().getClientNetPort();
@@ -191,7 +191,7 @@ public class CCApplication extends BaseCCApplication {
     protected void configureLoggingLevel(Level level) {
         super.configureLoggingLevel(level);
         LOGGER.info("Setting Asterix log level to " + level);
-        Logger.getLogger("org.apache.asterix").setLevel(level);
+        Configurator.setLevel("org.apache.asterix", level);
     }
 
     protected List<AsterixExtension> getExtensions() {
@@ -206,9 +206,7 @@ public class CCApplication extends BaseCCApplication {
 
     @Override
     public void stop() throws Exception {
-        if (LOGGER.isLoggable(Level.INFO)) {
-            LOGGER.info("Stopping Asterix cluster controller");
-        }
+        LOGGER.info("Stopping Asterix cluster controller");
         appCtx.getClusterStateManager().setState(SHUTTING_DOWN);
         ((ActiveNotificationHandler) 
appCtx.getActiveNotificationHandler()).stop();
         AsterixStateProxy.unregisterRemoteObject();

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterLifecycleListener.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterLifecycleListener.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterLifecycleListener.java
index 217d6e2..8c87a26 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterLifecycleListener.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterLifecycleListener.java
@@ -25,8 +25,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.LinkedBlockingQueue;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import org.apache.asterix.common.api.IClusterManagementWork;
 import org.apache.asterix.common.api.IClusterManagementWorkResponse;
@@ -41,10 +39,12 @@ import 
org.apache.asterix.metadata.cluster.RemoveNodeWorkResponse;
 import org.apache.hyracks.api.application.IClusterLifecycleListener;
 import org.apache.hyracks.api.config.IOption;
 import org.apache.hyracks.api.exceptions.HyracksException;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 public class ClusterLifecycleListener implements IClusterLifecycleListener {
 
-    private static final Logger LOGGER = 
Logger.getLogger(ClusterLifecycleListener.class.getName());
+    private static final Logger LOGGER = LogManager.getLogger();
     private final ICcApplicationContext appCtx;
     private final LinkedBlockingQueue<Set<IClusterManagementWork>> 
workRequestQueue = new LinkedBlockingQueue<>();
     private final ClusterWorkExecutor eventHandler;
@@ -54,15 +54,13 @@ public class ClusterLifecycleListener implements 
IClusterLifecycleListener {
         this.appCtx = appCtx;
         eventHandler = new ClusterWorkExecutor(workRequestQueue);
         Thread t = new Thread(eventHandler);
-        if (LOGGER.isLoggable(Level.INFO)) {
-            LOGGER.info("Starting cluster event handler");
-        }
+        LOGGER.info("Starting cluster event handler");
         t.start();
     }
 
     @Override
     public void notifyNodeJoin(String nodeId, Map<IOption, Object> 
ncConfiguration) throws HyracksException {
-        if (LOGGER.isLoggable(Level.INFO)) {
+        if (LOGGER.isInfoEnabled()) {
             LOGGER.info("NC: " + nodeId + " joined");
         }
         IClusterStateManager csm = appCtx.getClusterStateManager();
@@ -81,7 +79,7 @@ public class ClusterLifecycleListener implements 
IClusterLifecycleListener {
     @Override
     public void notifyNodeFailure(Collection<String> deadNodeIds) throws 
HyracksException {
         for (String deadNode : deadNodeIds) {
-            if (LOGGER.isLoggable(Level.INFO)) {
+            if (LOGGER.isInfoEnabled()) {
                 LOGGER.info("NC: " + deadNode + " left");
             }
             IClusterStateManager csm = appCtx.getClusterStateManager();
@@ -158,7 +156,7 @@ public class ClusterLifecycleListener implements 
IClusterLifecycleListener {
                 nodesToBeAddedForWork.add(addedNodes.get(i));
             }
             if (nodesToBeAddedForWork.isEmpty()) {
-                if (LOGGER.isLoggable(Level.INFO)) {
+                if (LOGGER.isInfoEnabled()) {
                     LOGGER.info("Unable to satisfy request by " + w);
                 }
                 AddNodeWorkResponse response = new AddNodeWorkResponse(w, 
nodesToBeAddedForWork);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterWorkExecutor.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterWorkExecutor.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterWorkExecutor.java
index bcc1c60..f227730 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterWorkExecutor.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/ClusterWorkExecutor.java
@@ -21,16 +21,16 @@ package org.apache.asterix.hyracks.bootstrap;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.concurrent.LinkedBlockingQueue;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import org.apache.asterix.common.api.IClusterManagementWork;
 import org.apache.asterix.metadata.cluster.AddNodeWork;
 import org.apache.asterix.metadata.cluster.RemoveNodeWork;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 public class ClusterWorkExecutor implements Runnable {
 
-    private static final Logger LOGGER = 
Logger.getLogger(ClusterWorkExecutor.class.getName());
+    private static final Logger LOGGER = LogManager.getLogger();
 
     private final LinkedBlockingQueue<Set<IClusterManagementWork>> inbox;
 
@@ -63,13 +63,13 @@ public class ClusterWorkExecutor implements Runnable {
                 }
 
             } catch (InterruptedException e) {
-                if (LOGGER.isLoggable(Level.SEVERE)) {
-                    LOGGER.severe("interruped" + e.getMessage());
+                if (LOGGER.isErrorEnabled()) {
+                    LOGGER.error("interruped" + e.getMessage());
                 }
                 throw new IllegalStateException(e);
             } catch (Exception e) {
-                if (LOGGER.isLoggable(Level.SEVERE)) {
-                    LOGGER.severe("Unexpected exception in handling cluster 
event" + e.getMessage());
+                if (LOGGER.isErrorEnabled()) {
+                    LOGGER.error("Unexpected exception in handling cluster 
event" + e.getMessage());
                 }
             }
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/GlobalRecoveryManager.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/GlobalRecoveryManager.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/GlobalRecoveryManager.java
index d6854b1..8e753c8 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/GlobalRecoveryManager.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/GlobalRecoveryManager.java
@@ -22,8 +22,6 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import org.apache.asterix.common.api.IClusterManagementWork;
 import org.apache.asterix.common.api.IClusterManagementWork.ClusterState;
@@ -50,10 +48,13 @@ import org.apache.hyracks.api.job.JobId;
 import org.apache.hyracks.api.job.JobSpecification;
 import org.apache.hyracks.control.nc.NCShutdownHook;
 import org.apache.hyracks.util.ExitUtil;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 public class GlobalRecoveryManager implements IGlobalRecoveryManager {
 
-    private static final Logger LOGGER = 
Logger.getLogger(GlobalRecoveryManager.class.getName());
+    private static final Logger LOGGER = LogManager.getLogger();
     protected final IStorageComponentProvider componentProvider;
     protected final ICCServiceContext serviceCtx;
     protected IHyracksClientConnection hcc;
@@ -97,7 +98,7 @@ public class GlobalRecoveryManager implements 
IGlobalRecoveryManager {
                         try {
                             recover(appCtx);
                         } catch (HyracksDataException e) {
-                            LOGGER.log(Level.SEVERE, "Global recovery failed. 
Shutting down...", e);
+                            LOGGER.log(Level.ERROR, "Global recovery failed. 
Shutting down...", e);
                             
ExitUtil.exit(NCShutdownHook.FAILED_TO_RECOVER_EXIT_CODE);
                         }
                     });

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
index 63178e1..a05b2bb 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
@@ -22,8 +22,6 @@ import java.io.File;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import org.apache.asterix.api.http.server.ServletConstants;
 import org.apache.asterix.api.http.server.StorageApiServlet;
@@ -61,9 +59,13 @@ import org.apache.hyracks.control.nc.BaseNCApplication;
 import org.apache.hyracks.control.nc.NodeControllerService;
 import org.apache.hyracks.http.server.HttpServer;
 import org.apache.hyracks.http.server.WebManager;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.config.Configurator;
 
 public class NCApplication extends BaseNCApplication {
-    private static final Logger LOGGER = 
Logger.getLogger(NCApplication.class.getName());
+    private static final Logger LOGGER = LogManager.getLogger();
 
     protected INCServiceContext ncServiceCtx;
     private INcApplicationContext runtimeContext;
@@ -91,7 +93,7 @@ public class NCApplication extends BaseNCApplication {
             throw new IllegalArgumentException("Unrecognized argument(s): " + 
Arrays.toString(args));
         }
         nodeId = this.ncServiceCtx.getNodeId();
-        if (LOGGER.isLoggable(Level.INFO)) {
+        if (LOGGER.isInfoEnabled()) {
             LOGGER.info("Starting Asterix node controller: " + nodeId);
         }
         
configureLoggingLevel(ncServiceCtx.getAppConfig().getLoggingLevel(ExternalProperties.Option.LOG_LEVEL));
@@ -105,7 +107,7 @@ public class NCApplication extends BaseNCApplication {
         runtimeContext = new NCAppRuntimeContext(ncServiceCtx, 
getExtensions());
         MetadataProperties metadataProperties = 
runtimeContext.getMetadataProperties();
         if 
(!metadataProperties.getNodeNames().contains(this.ncServiceCtx.getNodeId())) {
-            if (LOGGER.isLoggable(Level.INFO)) {
+            if (LOGGER.isInfoEnabled()) {
                 LOGGER.info("Substitute node joining : " + 
this.ncServiceCtx.getNodeId());
             }
             updateOnNodeJoin();
@@ -121,7 +123,7 @@ public class NCApplication extends BaseNCApplication {
         if (latestCheckpoint != null) {
             CompatibilityUtil.ensureCompatibility(controllerService, 
latestCheckpoint.getStorageVersion());
         }
-        if (LOGGER.isLoggable(Level.INFO)) {
+        if (LOGGER.isInfoEnabled()) {
             IRecoveryManager recoveryMgr = 
runtimeContext.getTransactionSubsystem().getRecoveryManager();
             LOGGER.info("System state: " + recoveryMgr.getSystemState());
             LOGGER.info("Node ID: " + nodeId);
@@ -134,7 +136,7 @@ public class NCApplication extends BaseNCApplication {
     @Override
     protected void configureLoggingLevel(Level level) {
         super.configureLoggingLevel(level);
-        Logger.getLogger("org.apache.asterix").setLevel(level);
+        Configurator.setLevel("org.apache.asterix", level);
     }
 
     protected void configureServers() throws Exception {
@@ -154,7 +156,7 @@ public class NCApplication extends BaseNCApplication {
         if (!stopInitiated) {
             runtimeContext.setShuttingdown(true);
             stopInitiated = true;
-            if (LOGGER.isLoggable(Level.INFO)) {
+            if (LOGGER.isInfoEnabled()) {
                 LOGGER.info("Stopping Asterix node controller: " + nodeId);
             }
 
@@ -167,7 +169,7 @@ public class NCApplication extends BaseNCApplication {
             ncServiceCtx.getLifeCycleComponentManager().stopAll(false);
             runtimeContext.deinitialize();
         } else {
-            if (LOGGER.isLoggable(Level.INFO)) {
+            if (LOGGER.isInfoEnabled()) {
                 LOGGER.info("Duplicate attempt to stop ignored: " + nodeId);
             }
         }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/CCMessageBroker.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/CCMessageBroker.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/CCMessageBroker.java
index 0eade41..8e8fb93 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/CCMessageBroker.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/CCMessageBroker.java
@@ -22,8 +22,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import org.apache.asterix.common.dataflow.ICcApplicationContext;
 import org.apache.asterix.common.exceptions.ErrorCode;
@@ -41,10 +39,13 @@ import org.apache.hyracks.api.util.JavaSerializationUtils;
 import org.apache.hyracks.control.cc.ClusterControllerService;
 import org.apache.hyracks.control.cc.NodeControllerState;
 import org.apache.hyracks.control.cc.cluster.INodeManager;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 public class CCMessageBroker implements ICCMessageBroker {
 
-    private static final Logger LOGGER = 
Logger.getLogger(CCMessageBroker.class.getName());
+    private static final Logger LOGGER = LogManager.getLogger();
     private final ClusterControllerService ccs;
     private final Map<Long, MutablePair<MutableInt, MutablePair<ResponseState, 
Object>>> handles =
             new ConcurrentHashMap<>();
@@ -58,7 +59,7 @@ public class CCMessageBroker implements ICCMessageBroker {
     @Override
     public void receivedMessage(IMessage message, String nodeId) throws 
Exception {
         ICcAddressedMessage msg = (ICcAddressedMessage) message;
-        if (LOGGER.isLoggable(Level.INFO)) {
+        if (LOGGER.isInfoEnabled()) {
             LOGGER.info("Received message: " + msg);
         }
         ICcApplicationContext appCtx = (ICcApplicationContext) 
ccs.getApplicationContext();
@@ -72,8 +73,8 @@ public class CCMessageBroker implements ICCMessageBroker {
         if (state != null) {
             
state.getNodeController().sendApplicationMessageToNC(JavaSerializationUtils.serialize(msg),
 null, nodeId);
         } else {
-            if (LOGGER.isLoggable(Level.WARNING)) {
-                LOGGER.warning("Couldn't send message to unregistered node (" 
+ nodeId + ")");
+            if (LOGGER.isWarnEnabled()) {
+                LOGGER.warn("Couldn't send message to unregistered node (" + 
nodeId + ")");
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/MessagingChannelInterfaceFactory.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/MessagingChannelInterfaceFactory.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/MessagingChannelInterfaceFactory.java
index a2a3460..dc006b7 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/MessagingChannelInterfaceFactory.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/MessagingChannelInterfaceFactory.java
@@ -20,8 +20,6 @@ package org.apache.asterix.messaging;
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import org.apache.asterix.common.config.MessagingProperties;
 import org.apache.asterix.common.memory.ConcurrentFramePool;
@@ -36,10 +34,13 @@ import org.apache.hyracks.api.comm.IChannelWriteInterface;
 import org.apache.hyracks.api.comm.ICloseableBufferAcceptor;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.api.util.JavaSerializationUtils;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 public class MessagingChannelInterfaceFactory implements 
IChannelInterfaceFactory {
 
-    private static final Logger LOGGER = 
Logger.getLogger(MessagingChannelInterfaceFactory.class.getName());
+    private static final Logger LOGGER = LogManager.getLogger();
 
     private final NCMessageBroker messageBroker;
     private final ConcurrentFramePool messagingFramePool;
@@ -113,8 +114,8 @@ public class MessagingChannelInterfaceFactory implements 
IChannelInterfaceFactor
                 // Queue the received message and free the network IO thread
                 messageBroker.queueReceivedMessage(receivedMsg);
             } catch (ClassNotFoundException | IOException e) {
-                if (LOGGER.isLoggable(Level.WARNING)) {
-                    LOGGER.log(Level.WARNING, e.getMessage(), e);
+                if (LOGGER.isWarnEnabled()) {
+                    LOGGER.log(Level.WARN, e.getMessage(), e);
                 }
             } finally {
                 recycle.accept(buffer);
@@ -143,8 +144,8 @@ public class MessagingChannelInterfaceFactory implements 
IChannelInterfaceFactor
             try {
                 messagingFramePool.release(buffer);
             } catch (HyracksDataException e) {
-                if (LOGGER.isLoggable(Level.WARNING)) {
-                    LOGGER.log(Level.WARNING, e.getMessage(), e);
+                if (LOGGER.isWarnEnabled()) {
+                    LOGGER.log(Level.WARN, e.getMessage(), e);
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/NCMessageBroker.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/NCMessageBroker.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/NCMessageBroker.java
index 33e89f0..08e406e 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/NCMessageBroker.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/NCMessageBroker.java
@@ -22,8 +22,6 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import org.apache.asterix.common.api.INcApplicationContext;
 import org.apache.asterix.common.config.MessagingProperties;
@@ -37,12 +35,15 @@ import 
org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.api.messages.IMessage;
 import org.apache.hyracks.api.util.JavaSerializationUtils;
 import org.apache.hyracks.control.nc.NodeControllerService;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 import io.netty.util.collection.LongObjectHashMap;
 import io.netty.util.collection.LongObjectMap;
 
 public class NCMessageBroker implements INCMessageBroker {
-    private static final Logger LOGGER = 
Logger.getLogger(NCMessageBroker.class.getName());
+    private static final Logger LOGGER = LogManager.getLogger();
 
     private final NodeControllerService ncs;
     private final INcApplicationContext appContext;
@@ -86,7 +87,7 @@ public class NCMessageBroker implements INCMessageBroker {
     @Override
     public void receivedMessage(IMessage message, String nodeId) throws 
Exception {
         INcAddressedMessage absMessage = (INcAddressedMessage) message;
-        if (LOGGER.isLoggable(Level.INFO)) {
+        if (LOGGER.isInfoEnabled()) {
             LOGGER.info("Received message: " + absMessage);
         }
         absMessage.handle(appContext);
@@ -153,12 +154,12 @@ public class NCMessageBroker implements INCMessageBroker {
                 } catch (InterruptedException e) {
                     Thread.currentThread().interrupt();
                 } catch (Exception e) {
-                    if (LOGGER.isLoggable(Level.WARNING) && msg != null) {
-                        LOGGER.log(Level.WARNING, "Could not process message : 
"
+                    if (LOGGER.isWarnEnabled() && msg != null) {
+                        LOGGER.log(Level.WARN, "Could not process message : "
                                 + msg, e);
                     } else {
-                        if (LOGGER.isLoggable(Level.WARNING)) {
-                            LOGGER.log(Level.WARNING, "Could not process 
message", e);
+                        if (LOGGER.isWarnEnabled()) {
+                            LOGGER.log(Level.WARN, "Could not process 
message", e);
                         }
                     }
                 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/main/java/org/apache/asterix/util/FaultToleranceUtil.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/util/FaultToleranceUtil.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/util/FaultToleranceUtil.java
index 64e9810..ddd0967 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/util/FaultToleranceUtil.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/util/FaultToleranceUtil.java
@@ -20,8 +20,6 @@ package org.apache.asterix.util;
 
 import java.util.List;
 import java.util.Map;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import java.util.stream.Collectors;
 
 import org.apache.asterix.common.cluster.IClusterStateManager;
@@ -33,10 +31,12 @@ import org.apache.commons.lang3.StringUtils;
 import 
org.apache.hyracks.api.application.IClusterLifecycleListener.ClusterEventType;
 import org.apache.hyracks.api.config.IOption;
 import org.apache.hyracks.control.common.controllers.NCConfig;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 public class FaultToleranceUtil {
 
-    private static final Logger LOGGER = 
Logger.getLogger(FaultToleranceUtil.class.getName());
+    private static final Logger LOGGER = LogManager.getLogger();
 
     private FaultToleranceUtil() {
         throw new AssertionError();
@@ -63,9 +63,7 @@ public class FaultToleranceUtil {
                 try {
                     messageBroker.sendApplicationMessageToNC(msg, replica);
                 } catch (Exception e) {
-                    if (LOGGER.isLoggable(Level.WARNING)) {
-                        LOGGER.log(Level.WARNING, "Failed sending an 
application message to an NC", e);
-                    }
+                    LOGGER.warn("Failed sending an application message to an 
NC", e);
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/CompatibilityUtil.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/CompatibilityUtil.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/CompatibilityUtil.java
index 5d44fc9..fd9b1e8 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/CompatibilityUtil.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/CompatibilityUtil.java
@@ -20,17 +20,18 @@ package org.apache.asterix.utils;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.logging.Logger;
 
 import org.apache.asterix.app.nc.task.MigrateStorageResourcesTask;
 import org.apache.asterix.common.api.INCLifecycleTask;
 import org.apache.asterix.common.utils.StorageConstants;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.control.nc.NodeControllerService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 public class CompatibilityUtil {
 
-    private static final Logger LOGGER = 
Logger.getLogger(CompatibilityUtil.class.getName());
+    private static final Logger LOGGER = LogManager.getLogger();
     private static final int MIN_COMPATIBLE_VERSION = 1;
 
     private CompatibilityUtil() {

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java
index a04c994..f6a4aac 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java
@@ -26,8 +26,6 @@ import java.util.EnumSet;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import java.util.stream.IntStream;
 
 import org.apache.asterix.active.IActiveEntityEventsListener;
@@ -62,12 +60,15 @@ import org.apache.hyracks.api.job.JobSpecification;
 import 
org.apache.hyracks.dataflow.common.data.partition.FieldHashPartitionComputerFactory;
 import 
org.apache.hyracks.dataflow.std.connectors.MToNPartitioningConnectorDescriptor;
 import org.apache.hyracks.dataflow.std.connectors.OneToOneConnectorDescriptor;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 /**
  * A utility class for the rebalance operation.
  */
 public class RebalanceUtil {
-    private static final Logger LOGGER = 
Logger.getLogger(RebalanceUtil.class.getName());
+    private static final Logger LOGGER = LogManager.getLogger();
 
     private RebalanceUtil() {
 
@@ -173,7 +174,7 @@ public class RebalanceUtil {
                 work.run();
                 done = true;
             } catch (InterruptedException e) {
-                LOGGER.log(Level.WARNING, "Retry with attempt " + 
(++retryCount), e);
+                LOGGER.log(Level.WARN, "Retry with attempt " + (++retryCount), 
e);
                 interruptedException = e;
             }
         } while (!done);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/main/resources/cc2.conf
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/main/resources/cc2.conf 
b/asterixdb/asterix-app/src/main/resources/cc2.conf
index 41beda7..b7e4bc3 100644
--- a/asterixdb/asterix-app/src/main/resources/cc2.conf
+++ b/asterixdb/asterix-app/src/main/resources/cc2.conf
@@ -46,7 +46,7 @@ app.class=org.apache.asterix.hyracks.bootstrap.CCApplication
 heartbeat.period=2000
 
 [common]
-log.level = WARNING
+log.level = WARN
 compiler.framesize=32KB
 compiler.sortmemory=320KB
 compiler.groupmemory=160KB

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/main/resources/cc3.conf
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/main/resources/cc3.conf 
b/asterixdb/asterix-app/src/main/resources/cc3.conf
index 4c38081..d6e7a9d 100644
--- a/asterixdb/asterix-app/src/main/resources/cc3.conf
+++ b/asterixdb/asterix-app/src/main/resources/cc3.conf
@@ -46,7 +46,7 @@ app.class=org.apache.asterix.hyracks.bootstrap.CCApplication
 heartbeat.period=2000
 
 [common]
-log.level = WARNING
+log.level = WARN
 compiler.framesize=32KB
 compiler.sortmemory=320KB
 compiler.groupmemory=160KB

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/main/resources/log4j2.xml
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/main/resources/log4j2.xml 
b/asterixdb/asterix-app/src/main/resources/log4j2.xml
new file mode 100644
index 0000000..28c1a61
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/log4j2.xml
@@ -0,0 +1,30 @@
+<!--
+ ! 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 complianceo
+ ! 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_ERR">
+      <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>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
index fddab14..23a3eda 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
@@ -25,8 +25,6 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-import java.util.Optional;
-import java.util.logging.Logger;
 
 import org.apache.asterix.app.external.ExternalUDFLibrarian;
 import org.apache.asterix.app.nc.NCAppRuntimeContext;
@@ -67,7 +65,6 @@ import 
org.apache.asterix.transaction.management.opcallbacks.AbstractIndexModifi
 import 
org.apache.asterix.transaction.management.opcallbacks.PrimaryIndexModificationOperationCallbackFactory;
 import org.apache.asterix.transaction.management.runtime.CommitRuntime;
 import org.apache.asterix.transaction.management.service.logging.LogReader;
-import org.apache.avro.generic.GenericData;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.algebricks.runtime.base.IPushRuntime;
@@ -112,10 +109,12 @@ import org.apache.hyracks.storage.common.IResourceFactory;
 import org.apache.hyracks.storage.common.IStorageManager;
 import org.apache.hyracks.test.support.TestUtils;
 import org.apache.hyracks.util.file.FileUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.mockito.Mockito;
 
 public class TestNodeController {
-    protected static final Logger LOGGER = 
Logger.getLogger(TestNodeController.class.getName());
+    protected static final Logger LOGGER = LogManager.getLogger();
 
     protected static final String PATH_ACTUAL = "unittest" + File.separator;
     protected static final String PATH_BASE = FileUtil.joinPath("src", "test", 
"resources", "nodetests");

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/TestNodeControllerActor.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/TestNodeControllerActor.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/TestNodeControllerActor.java
index a5afa0e..f849f08 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/TestNodeControllerActor.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/TestNodeControllerActor.java
@@ -22,7 +22,6 @@ import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import java.util.logging.Logger;
 
 import org.apache.asterix.active.ActiveEvent;
 import org.apache.asterix.active.ActiveEvent.Kind;
@@ -32,9 +31,11 @@ import 
org.apache.asterix.active.message.ActivePartitionMessage;
 import org.apache.asterix.active.message.ActivePartitionMessage.Event;
 import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.hyracks.api.job.JobId;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 public class TestNodeControllerActor extends Actor {
-    private static final Logger LOGGER = 
Logger.getLogger(TestNodeControllerActor.class.getName());
+    private static final Logger LOGGER = LogManager.getLogger();
 
     private final String id;
     private final TestClusterControllerActor clusterController;
@@ -62,7 +63,7 @@ public class TestNodeControllerActor extends Actor {
         if (registrations.remove(registration)) {
             return registration.deregister();
         } else {
-            LOGGER.warning("Request to stop runtime: " + new 
ActiveRuntimeId(entityId, "Test", partition)
+            LOGGER.warn("Request to stop runtime: " + new 
ActiveRuntimeId(entityId, "Test", partition)
                     + " that is not registered. Could be that the runtime 
completed execution on"
                     + " this node before the cluster controller sent the stop 
request");
             return new Action() {

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/aql/AQLTestCase.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/aql/AQLTestCase.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/aql/AQLTestCase.java
index 7173103..cfd5373 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/aql/AQLTestCase.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/aql/AQLTestCase.java
@@ -58,11 +58,11 @@ public class AQLTestCase extends TestCase {
         try {
             parser.parse();
         } catch (Exception e) {
-            GlobalConfig.ASTERIX_LOGGER.warning("Failed while testing file " + 
reader);
+            GlobalConfig.ASTERIX_LOGGER.warn("Failed while testing file " + 
reader);
             StringWriter sw = new StringWriter();
             PrintWriter writer = new PrintWriter(sw);
             e.printStackTrace(writer);
-            GlobalConfig.ASTERIX_LOGGER.warning(sw.toString());
+            GlobalConfig.ASTERIX_LOGGER.warn(sw.toString());
             throw new ParseException("Parsing " + queryFile.toString());
         }
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/RebalanceCancellationTestExecutor.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/RebalanceCancellationTestExecutor.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/RebalanceCancellationTestExecutor.java
index a63cb76..3318459 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/RebalanceCancellationTestExecutor.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/RebalanceCancellationTestExecutor.java
@@ -28,7 +28,6 @@ import java.util.Map;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
-import java.util.logging.Level;
 
 import org.apache.asterix.common.exceptions.ExceptionUtils;
 import org.apache.asterix.common.utils.Servlets;
@@ -39,6 +38,7 @@ import org.apache.commons.lang3.mutable.MutableInt;
 import org.apache.http.HttpResponse;
 import org.apache.http.client.methods.HttpUriRequest;
 import org.apache.http.client.methods.RequestBuilder;
+import org.apache.logging.log4j.Level;
 import org.junit.Assert;
 
 public class RebalanceCancellationTestExecutor extends TestExecutor {
@@ -84,7 +84,7 @@ public class RebalanceCancellationTestExecutor extends 
TestExecutor {
                         if (errorMsg == null || !errorMsg.contains("reference 
count = 1")) {
                             return e2;
                         }
-                        LOGGER.log(Level.WARNING, e2.toString(), e2);
+                        LOGGER.log(Level.WARN, e2.toString(), e2);
                     }
                 } while (!done);
             }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/ResultExtractor.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/ResultExtractor.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/ResultExtractor.java
index b95a283..890667a 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/ResultExtractor.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/ResultExtractor.java
@@ -25,10 +25,11 @@ import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
-import java.util.logging.Logger;
 
 import org.apache.asterix.common.exceptions.AsterixException;
 import org.apache.commons.io.IOUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 import com.fasterxml.jackson.core.PrettyPrinter;
 import com.fasterxml.jackson.databind.JsonNode;
@@ -77,7 +78,7 @@ public class ResultExtractor {
         }
     }
 
-    private static final Logger LOGGER = 
Logger.getLogger(ResultExtractor.class.getName());
+    private static final Logger LOGGER = LogManager.getLogger();
     private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
 
     public static InputStream extract(InputStream resultStream) throws 
Exception {
@@ -109,7 +110,7 @@ public class ResultExtractor {
         final PrettyPrinter singleLine = new SingleLinePrettyPrinter();
         final ObjectNode result = OBJECT_MAPPER.readValue(resultStr, 
ObjectNode.class);
 
-        LOGGER.fine("+++++++\n" + result + "\n+++++++\n");
+        LOGGER.debug("+++++++\n" + result + "\n+++++++\n");
         // if we have errors field in the results, we will always return it
         checkForErrors(result);
         final StringBuilder resultBuilder = new StringBuilder();

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
index eaed8a6..bb3316d 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java
@@ -53,8 +53,6 @@ import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.function.Predicate;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Stream;
@@ -91,6 +89,9 @@ import 
org.apache.http.impl.client.StandardHttpRequestRetryHandler;
 import org.apache.http.protocol.HttpContext;
 import org.apache.http.util.EntityUtils;
 import org.apache.hyracks.util.StorageUtil;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.junit.Assert;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -105,7 +106,7 @@ public class TestExecutor {
     /*
      * Static variables
      */
-    protected static final Logger LOGGER = 
Logger.getLogger(TestExecutor.class.getName());
+    protected static final Logger LOGGER = LogManager.getLogger();
     // see
     // 
https://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers/417184
     private static final long MAX_URL_LENGTH = 2000l;
@@ -444,9 +445,9 @@ public class TestExecutor {
         final File parentDir = actualFile.getParentFile();
         if (!parentDir.isDirectory()) {
             if (parentDir.exists()) {
-                LOGGER.warning("Actual file parent \"" + parentDir + "\" 
exists but is not a directory");
+                LOGGER.warn("Actual file parent \"" + parentDir + "\" exists 
but is not a directory");
             } else if (!parentDir.mkdirs()) {
-                LOGGER.warning("Unable to create actual file parent dir: " + 
parentDir);
+                LOGGER.warn("Unable to create actual file parent dir: " + 
parentDir);
             }
         }
         try (FileOutputStream out = new FileOutputStream(actualFile)) {
@@ -468,7 +469,7 @@ public class TestExecutor {
         try {
             return client.execute(method, getHttpContext());
         } catch (Exception e) {
-            GlobalConfig.ASTERIX_LOGGER.log(Level.SEVERE, e.getMessage(), e);
+            GlobalConfig.ASTERIX_LOGGER.log(Level.ERROR, e.getMessage(), e);
             e.printStackTrace();
             throw e;
         }
@@ -491,7 +492,7 @@ public class TestExecutor {
                         result.get("stacktrace").asText() };
             } catch (Exception e) {
                 // whoops, not JSON (e.g. 404) - just include the body
-                GlobalConfig.ASTERIX_LOGGER.log(Level.SEVERE, errorBody);
+                GlobalConfig.ASTERIX_LOGGER.log(Level.ERROR, errorBody);
                 Exception failure = new Exception("HTTP operation failed:" + 
"\nSTATUS LINE: "
                         + httpResponse.getStatusLine() + "\nERROR_BODY: " + 
errorBody);
                 failure.addSuppressed(e);
@@ -1210,7 +1211,7 @@ public class TestExecutor {
         ctx.setType(ctx.getType().substring("poll".length()));
         boolean expectedException = false;
         Exception finalException = null;
-        LOGGER.fine("polling for up to " + timeoutSecs + " seconds w/ " + 
retryDelaySecs + " second(s) delay");
+        LOGGER.debug("polling for up to " + timeoutSecs + " seconds w/ " + 
retryDelaySecs + " second(s) delay");
         int responsesReceived = 0;
         final ExecutorService executorService = 
Executors.newSingleThreadExecutor();
         while (true) {
@@ -1257,7 +1258,7 @@ public class TestExecutor {
                     finalException = e;
                     break;
                 }
-                LOGGER.fine("sleeping " + retryDelaySecs + " second(s) before 
polling again");
+                LOGGER.debug("sleeping " + retryDelaySecs + " second(s) before 
polling again");
                 TimeUnit.SECONDS.sleep(retryDelaySecs);
             }
         }
@@ -1504,7 +1505,7 @@ public class TestExecutor {
             path = tokens[1];
         }
         URI uri = new URI("http", null, endpoint.getHostString(), 
endpoint.getPort(), path, query, null);
-        LOGGER.fine("Created endpoint URI: " + uri);
+        LOGGER.debug("Created endpoint URI: " + uri);
         return uri;
     }
 
@@ -1549,7 +1550,7 @@ public class TestExecutor {
             }
             if (!toBeDropped.isEmpty()) {
                 badtestcases.add(testCase);
-                LOGGER.warning(
+                LOGGER.warn(
                         "Last test left some garbage. Dropping dataverses: " + 
StringUtils.join(toBeDropped, ','));
                 StringBuilder dropStatement = new StringBuilder();
                 for (String dv : toBeDropped) {

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/jsonplan/JsonLogicalPlanTest.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/jsonplan/JsonLogicalPlanTest.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/jsonplan/JsonLogicalPlanTest.java
index 52532d6..7965afb 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/jsonplan/JsonLogicalPlanTest.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/jsonplan/JsonLogicalPlanTest.java
@@ -1 +1 @@
-/*
 * 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.
 */

package org.apache.asterix.test.jsonplan;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
 
import java.io.Reader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.logging.Logger;

import org.apache.asterix.api.common.AsterixHyracksIntegrationUtil;
import org.apache.asterix.api.java.AsterixJavaClient;
import org.apache.asterix.app.translator.DefaultStatementExecutorFactory;
import org.apache.asterix.common.config.GlobalConfig;
import org.apache.asterix.common.context.IStorageComponentProvider;
import org.apache.asterix.common.dataflow.ICcApplicationContext;
import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.compiler.provider.AqlCompilationProvider;
import org.apache.asterix.compiler.provider.ILangCompilationProvider;
import org.apache.asterix.compiler.provider.SqlppCompilationProvider;
import org.apache.asterix.external.util.ExternalDataConstants;
import org.apache.asterix.external.util.IdentitiyResolverFactory;
import org.apache.asterix.file.StorageComponentProvider;
import org.apache.asterix.test.base.Asterix
 TestHelper;
import org.apache.asterix.test.common.TestHelper;
import org.apache.asterix.test.runtime.HDFSCluster;
import org.apache.asterix.translator.IStatementExecutorFactory;
import org.apache.asterix.translator.SessionConfig.PlanFormat;
import org.apache.hyracks.api.client.IHyracksClientConnection;
import org.junit.AfterClass;
import org.junit.Assume;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.internal.AssumptionViolatedException;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.ObjectMapper;

@RunWith(Parameterized.class)
public class JsonLogicalPlanTest {

    private static final Logger LOGGER = Logger
            
.getLogger(org.apache.asterix.test.jsonplan.JsonLogicalPlanTest.class.getName());

    protected static final String SEPARATOR = File.separator;
    private static final String EXTE
 NSION_AQL = "aql";
    private static final String EXTENSION_SQLPP = "sqlpp";
    private static final String EXTENSION_RESULT = "plan";
    private static final String FILENAME_IGNORE = "ignore.txt";
    private static final String FILENAME_ONLY = "only.txt";
    private static final String PATH_BASE = "src" + SEPARATOR + "test" + 
SEPARATOR + "resources" + SEPARATOR
            + "optimizerts" + SEPARATOR;
    private static final String PATH_QUERIES = PATH_BASE + "queries" + 
SEPARATOR;
    protected static String PATH_ACTUAL = "target" + File.separator + 
"jplantest" + SEPARATOR;
    protected static boolean optimized = false;

    private static final ArrayList<String> ignore = 
AsterixTestHelper.readTestListFile(FILENAME_IGNORE, PATH_BASE);
    private static final ArrayList<String> only = 
AsterixTestHelper.readTestListFile(FILENAME_ONLY, PATH_BASE);
    protected static final String TEST_CONFIG_FILE_NAME = 
"src/main/resources/cc.conf";
    private static final ILangCompilationPro
 vider aqlCompilationProvider = new AqlCompilationProvider();
    private static final ILangCompilationProvider sqlppCompilationProvider = 
new SqlppCompilationProvider();
    protected static ILangCompilationProvider extensionLangCompilationProvider 
= null;
    protected static IStatementExecutorFactory statementExecutorFactory = new 
DefaultStatementExecutorFactory();
    protected static IStorageComponentProvider storageComponentProvider = new 
StorageComponentProvider();

    protected static AsterixHyracksIntegrationUtil integrationUtil = new 
AsterixHyracksIntegrationUtil();

    @BeforeClass
    public static void setUp() throws Exception {
        System.setProperty(GlobalConfig.CONFIG_FILE_PROPERTY, 
TEST_CONFIG_FILE_NAME);
        final File outdir = new File(PATH_ACTUAL);
        outdir.mkdirs();

        HDFSCluster.getInstance().setup();

        integrationUtil.init(true, TEST_CONFIG_FILE_NAME);
        // Set the node resolver to be the identity resolver that expects node n
 ames
        // to be node controller ids; a valid assumption in test environment.
        System.setProperty(ExternalDataConstants.NODE_RESOLVER_FACTORY_PROPERTY,
                IdentitiyResolverFactory.class.getName());
    }

    @AfterClass
    public static void tearDown() throws Exception {
        File outdir = new File(PATH_ACTUAL);
        File[] files = outdir.listFiles();
        if (files == null || files.length == 0) {
            outdir.delete();
        }

        HDFSCluster.getInstance().cleanup();

        integrationUtil.deinit(true);
    }

    private static void suiteBuildPerFile(File file, Collection<Object[]> 
testArgs, String path) {
        if (file.isDirectory() && !file.getName().startsWith(".")) {
            for (File innerfile : file.listFiles()) {
                String subdir = innerfile.isDirectory() ? path + 
innerfile.getName() + SEPARATOR : path;
                suiteBuildPerFile(innerfile, testArgs, subdir);
            }
        }
        if (fi
 le.isFile() && (file.getName().endsWith(EXTENSION_AQL) || 
file.getName().endsWith(EXTENSION_SQLPP))) {
            String resultFileName = 
AsterixTestHelper.extToResExt(file.getName(), EXTENSION_RESULT);
            File actualFile = new File(PATH_ACTUAL + SEPARATOR + path + 
resultFileName);
            testArgs.add(new Object[] { file, actualFile });
        }
    }

    @Parameters(name = "JsonLogicalPlanTest {index}: {0}")
    public static Collection<Object[]> tests() {
        Collection<Object[]> testArgs = new ArrayList<>();
        if (only.isEmpty()) {
            suiteBuildPerFile(new File(PATH_QUERIES), testArgs, "");
        } else {
            for (String path : only) {
                suiteBuildPerFile(new File(PATH_QUERIES + path), testArgs,
                        path.lastIndexOf(SEPARATOR) < 0 ? "" : 
path.substring(0, path.lastIndexOf(SEPARATOR) + 1));
            }
        }
        return testArgs;
    }

    private final File actualFile;
    private final File
  queryFile;

    public JsonLogicalPlanTest(final File queryFile, final File actualFile) {
        this.queryFile = queryFile;
        this.actualFile = actualFile;
    }

    @Test
    public void test() throws Exception {
        try {
            String queryFileShort = 
queryFile.getPath().substring(PATH_QUERIES.length()).replace(SEPARATOR.charAt(0),
                    '/');
            if (!only.isEmpty()) {
                boolean toRun = TestHelper.isInPrefixList(only, queryFileShort);
                if (!toRun) {
                    LOGGER.info("SKIP TEST: \"" + queryFile.getPath()
                            + "\" \"only.txt\" not empty and not in 
\"only.txt\".");
                }
                Assume.assumeTrue(toRun);
            }
            boolean skipped = TestHelper.isInPrefixList(ignore, queryFileShort);
            if (skipped) {
                LOGGER.info("SKIP TEST: \"" + queryFile.getPath() + "\" in 
\"ignore.txt\".");
            }
            Assume.assum
 eTrue(!skipped);

            LOGGER.info("RUN TEST: \"" + queryFile.getPath() + "\"");
            Reader query = new BufferedReader(new InputStreamReader(new 
FileInputStream(queryFile), "UTF-8"));

            // Forces the creation of actualFile.
            actualFile.getParentFile().mkdirs();

            PrintWriter plan = new PrintWriter(actualFile);
            ILangCompilationProvider provider = 
queryFile.getName().endsWith("aql") ? aqlCompilationProvider
                    : sqlppCompilationProvider;
            if (extensionLangCompilationProvider != null) {
                provider = extensionLangCompilationProvider;
            }
            IHyracksClientConnection hcc = 
integrationUtil.getHyracksClientConnection();
            AsterixJavaClient asterix = new AsterixJavaClient(
                    (ICcApplicationContext) 
integrationUtil.cc.getApplicationContext(), hcc, query, plan, provider,
                    statementExecutorFactory, storageComponentProvider);
    
         try {
                asterix.compile(true, false, !optimized, optimized, false, 
false, false, PlanFormat.JSON);

            } catch (AsterixException e) {
                plan.close();
                query.close();
                throw new Exception("Compile ERROR for " + queryFile + ": " + 
e.getMessage(), e);
            }
            plan.close();
            query.close();

            BufferedReader readerActual = new BufferedReader(
                    new InputStreamReader(new FileInputStream(actualFile), 
"UTF-8"));
            String lineActual, objectActual = "";
            boolean firstPlan = false;
            while ((lineActual = readerActual.readLine()) != null) {
                if (lineActual.contains("--")) {
                    if (firstPlan) {
                        break;
                    }
                    firstPlan = true;

                } else {
                    objectActual = objectActual + lineActual;
                }
            }

 
            try {
                final JsonParser parser = new 
ObjectMapper().getJsonFactory().createJsonParser(objectActual);
                while (parser.nextToken() != null) {
                }
            } finally {
                readerActual.close();
            }

        } catch (Exception e) {
            if (!(e instanceof AssumptionViolatedException)) {
                LOGGER.severe("Test \"" + queryFile.getPath() + "\" FAILED!");
                throw new Exception("Test \"" + queryFile.getPath() + "\" 
FAILED!", e);
            } else {
                throw e;
            }
        }
    }
}
\ No newline at end of file
+/*
 * 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.
 */

package org.apache.asterix.test.jsonplan;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
 
import java.io.Reader;
import java.util.ArrayList;
import java.util.Collection;

import org.apache.asterix.api.common.AsterixHyracksIntegrationUtil;
import org.apache.asterix.api.java.AsterixJavaClient;
import org.apache.asterix.app.translator.DefaultStatementExecutorFactory;
import org.apache.asterix.common.config.GlobalConfig;
import org.apache.asterix.common.context.IStorageComponentProvider;
import org.apache.asterix.common.dataflow.ICcApplicationContext;
import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.compiler.provider.AqlCompilationProvider;
import org.apache.asterix.compiler.provider.ILangCompilationProvider;
import org.apache.asterix.compiler.provider.SqlppCompilationProvider;
import org.apache.asterix.external.util.ExternalDataConstants;
import org.apache.asterix.external.util.IdentitiyResolverFactory;
import org.apache.asterix.file.StorageComponentProvider;
import org.apache.asterix.test.base.AsterixTestHelper;
import org.apache.ast
 erix.test.common.TestHelper;
import org.apache.asterix.test.runtime.HDFSCluster;
import org.apache.asterix.translator.IStatementExecutorFactory;
import org.apache.asterix.translator.SessionConfig.PlanFormat;
import org.apache.hyracks.api.client.IHyracksClientConnection;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.AfterClass;
import org.junit.Assume;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.internal.AssumptionViolatedException;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.ObjectMapper;

@RunWith(Parameterized.class)
public class JsonLogicalPlanTest {

    private static final Logger LOGGER = LogManager.getLogger();

    protected static final String SEPARATOR = File.separator;
    private static final String EXTENSION_AQL = "aql";
    pri
 vate static final String EXTENSION_SQLPP = "sqlpp";
    private static final String EXTENSION_RESULT = "plan";
    private static final String FILENAME_IGNORE = "ignore.txt";
    private static final String FILENAME_ONLY = "only.txt";
    private static final String PATH_BASE = "src" + SEPARATOR + "test" + 
SEPARATOR + "resources" + SEPARATOR
            + "optimizerts" + SEPARATOR;
    private static final String PATH_QUERIES = PATH_BASE + "queries" + 
SEPARATOR;
    protected static String PATH_ACTUAL = "target" + File.separator + 
"jplantest" + SEPARATOR;
    protected static boolean optimized = false;

    private static final ArrayList<String> ignore = 
AsterixTestHelper.readTestListFile(FILENAME_IGNORE, PATH_BASE);
    private static final ArrayList<String> only = 
AsterixTestHelper.readTestListFile(FILENAME_ONLY, PATH_BASE);
    protected static final String TEST_CONFIG_FILE_NAME = 
"src/main/resources/cc.conf";
    private static final ILangCompilationProvider aqlCompilationProvid
 er = new AqlCompilationProvider();
    private static final ILangCompilationProvider sqlppCompilationProvider = 
new SqlppCompilationProvider();
    protected static ILangCompilationProvider extensionLangCompilationProvider 
= null;
    protected static IStatementExecutorFactory statementExecutorFactory = new 
DefaultStatementExecutorFactory();
    protected static IStorageComponentProvider storageComponentProvider = new 
StorageComponentProvider();

    protected static AsterixHyracksIntegrationUtil integrationUtil = new 
AsterixHyracksIntegrationUtil();

    @BeforeClass
    public static void setUp() throws Exception {
        System.setProperty(GlobalConfig.CONFIG_FILE_PROPERTY, 
TEST_CONFIG_FILE_NAME);
        final File outdir = new File(PATH_ACTUAL);
        outdir.mkdirs();

        HDFSCluster.getInstance().setup();

        integrationUtil.init(true, TEST_CONFIG_FILE_NAME);
        // Set the node resolver to be the identity resolver that expects node 
names
        // to be node
  controller ids; a valid assumption in test environment.
        System.setProperty(ExternalDataConstants.NODE_RESOLVER_FACTORY_PROPERTY,
                IdentitiyResolverFactory.class.getName());
    }

    @AfterClass
    public static void tearDown() throws Exception {
        File outdir = new File(PATH_ACTUAL);
        File[] files = outdir.listFiles();
        if (files == null || files.length == 0) {
            outdir.delete();
        }

        HDFSCluster.getInstance().cleanup();

        integrationUtil.deinit(true);
    }

    private static void suiteBuildPerFile(File file, Collection<Object[]> 
testArgs, String path) {
        if (file.isDirectory() && !file.getName().startsWith(".")) {
            for (File innerfile : file.listFiles()) {
                String subdir = innerfile.isDirectory() ? path + 
innerfile.getName() + SEPARATOR : path;
                suiteBuildPerFile(innerfile, testArgs, subdir);
            }
        }
        if (file.isFile() && (file.getNa
 me().endsWith(EXTENSION_AQL) || file.getName().endsWith(EXTENSION_SQLPP))) {
            String resultFileName = 
AsterixTestHelper.extToResExt(file.getName(), EXTENSION_RESULT);
            File actualFile = new File(PATH_ACTUAL + SEPARATOR + path + 
resultFileName);
            testArgs.add(new Object[] { file, actualFile });
        }
    }

    @Parameters(name = "JsonLogicalPlanTest {index}: {0}")
    public static Collection<Object[]> tests() {
        Collection<Object[]> testArgs = new ArrayList<>();
        if (only.isEmpty()) {
            suiteBuildPerFile(new File(PATH_QUERIES), testArgs, "");
        } else {
            for (String path : only) {
                suiteBuildPerFile(new File(PATH_QUERIES + path), testArgs,
                        path.lastIndexOf(SEPARATOR) < 0 ? "" : 
path.substring(0, path.lastIndexOf(SEPARATOR) + 1));
            }
        }
        return testArgs;
    }

    private final File actualFile;
    private final File queryFile;

    public Js
 onLogicalPlanTest(final File queryFile, final File actualFile) {
        this.queryFile = queryFile;
        this.actualFile = actualFile;
    }

    @Test
    public void test() throws Exception {
        try {
            String queryFileShort = 
queryFile.getPath().substring(PATH_QUERIES.length()).replace(SEPARATOR.charAt(0),
                    '/');
            if (!only.isEmpty()) {
                boolean toRun = TestHelper.isInPrefixList(only, queryFileShort);
                if (!toRun) {
                    LOGGER.info("SKIP TEST: \"" + queryFile.getPath()
                            + "\" \"only.txt\" not empty and not in 
\"only.txt\".");
                }
                Assume.assumeTrue(toRun);
            }
            boolean skipped = TestHelper.isInPrefixList(ignore, queryFileShort);
            if (skipped) {
                LOGGER.info("SKIP TEST: \"" + queryFile.getPath() + "\" in 
\"ignore.txt\".");
            }
            Assume.assumeTrue(!skipped);

        
     LOGGER.info("RUN TEST: \"" + queryFile.getPath() + "\"");
            Reader query = new BufferedReader(new InputStreamReader(new 
FileInputStream(queryFile), "UTF-8"));

            // Forces the creation of actualFile.
            actualFile.getParentFile().mkdirs();

            PrintWriter plan = new PrintWriter(actualFile);
            ILangCompilationProvider provider = 
queryFile.getName().endsWith("aql") ? aqlCompilationProvider
                    : sqlppCompilationProvider;
            if (extensionLangCompilationProvider != null) {
                provider = extensionLangCompilationProvider;
            }
            IHyracksClientConnection hcc = 
integrationUtil.getHyracksClientConnection();
            AsterixJavaClient asterix = new AsterixJavaClient(
                    (ICcApplicationContext) 
integrationUtil.cc.getApplicationContext(), hcc, query, plan, provider,
                    statementExecutorFactory, storageComponentProvider);
            try {
            
     asterix.compile(true, false, !optimized, optimized, false, false, false, 
PlanFormat.JSON);

            } catch (AsterixException e) {
                plan.close();
                query.close();
                throw new Exception("Compile ERROR for " + queryFile + ": " + 
e.getMessage(), e);
            }
            plan.close();
            query.close();

            BufferedReader readerActual = new BufferedReader(
                    new InputStreamReader(new FileInputStream(actualFile), 
"UTF-8"));
            String lineActual, objectActual = "";
            boolean firstPlan = false;
            while ((lineActual = readerActual.readLine()) != null) {
                if (lineActual.contains("--")) {
                    if (firstPlan) {
                        break;
                    }
                    firstPlan = true;

                } else {
                    objectActual = objectActual + lineActual;
                }
            }

            try {
         
        final JsonParser parser = new 
ObjectMapper().getJsonFactory().createJsonParser(objectActual);
                while (parser.nextToken() != null) {
                }
            } finally {
                readerActual.close();
            }

        } catch (Exception e) {
            if (!(e instanceof AssumptionViolatedException)) {
                LOGGER.error("Test \"" + queryFile.getPath() + "\" FAILED!");
                throw new Exception("Test \"" + queryFile.getPath() + "\" 
FAILED!", e);
            } else {
                throw e;
            }
        }
    }
}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/jsonplan/JsonOptimizedLogicalPlanTest.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/jsonplan/JsonOptimizedLogicalPlanTest.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/jsonplan/JsonOptimizedLogicalPlanTest.java
index b8e4595..bc699c0 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/jsonplan/JsonOptimizedLogicalPlanTest.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/jsonplan/JsonOptimizedLogicalPlanTest.java
@@ -20,7 +20,6 @@
 package org.apache.asterix.test.jsonplan;
 
 import java.io.File;
-import java.util.logging.Logger;
 
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -28,9 +27,6 @@ import org.junit.runners.Parameterized;
 @RunWith(Parameterized.class)
 public class JsonOptimizedLogicalPlanTest extends JsonLogicalPlanTest {
 
-    private static final Logger LOGGER =
-            
Logger.getLogger(org.apache.asterix.test.jsonplan.JsonOptimizedLogicalPlanTest.class.getName());
-
     public JsonOptimizedLogicalPlanTest(File queryFile, File actualFile) {
         super(queryFile, actualFile);
         optimized = true;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/optimizer/OptimizerTest.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/optimizer/OptimizerTest.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/optimizer/OptimizerTest.java
index 9b8afd3..8b228bd 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/optimizer/OptimizerTest.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/optimizer/OptimizerTest.java
@@ -26,7 +26,6 @@ import java.io.PrintWriter;
 import java.io.Reader;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.logging.Logger;
 
 import org.apache.asterix.api.common.AsterixHyracksIntegrationUtil;
 import org.apache.asterix.api.java.AsterixJavaClient;
@@ -34,7 +33,6 @@ import 
org.apache.asterix.app.translator.DefaultStatementExecutorFactory;
 import org.apache.asterix.common.config.GlobalConfig;
 import org.apache.asterix.common.context.IStorageComponentProvider;
 import org.apache.asterix.common.dataflow.ICcApplicationContext;
-import org.apache.asterix.common.exceptions.AsterixException;
 import org.apache.asterix.compiler.provider.AqlCompilationProvider;
 import org.apache.asterix.compiler.provider.ILangCompilationProvider;
 import org.apache.asterix.compiler.provider.SqlppCompilationProvider;
@@ -47,6 +45,8 @@ import org.apache.asterix.test.runtime.HDFSCluster;
 import org.apache.asterix.translator.IStatementExecutorFactory;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.api.client.IHyracksClientConnection;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.junit.AfterClass;
 import org.junit.Assume;
 import org.junit.BeforeClass;
@@ -59,7 +59,7 @@ import org.junit.runners.Parameterized.Parameters;
 @RunWith(Parameterized.class)
 public class OptimizerTest {
 
-    private static final Logger LOGGER = 
Logger.getLogger(OptimizerTest.class.getName());
+    private static final Logger LOGGER = LogManager.getLogger();
 
     private static final String SEPARATOR = File.separator;
     private static final String EXTENSION_AQL = "aql";
@@ -230,7 +230,7 @@ public class OptimizerTest {
             }
         } catch (Exception e) {
             if (!(e instanceof AssumptionViolatedException)) {
-                LOGGER.severe("Test \"" + queryFile.getPath() + "\" FAILED!");
+                LOGGER.error("Test \"" + queryFile.getPath() + "\" FAILED!");
                 throw new Exception("Test \"" + queryFile.getPath() + "\" 
FAILED!", e);
             } else {
                 throw e;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTestUtil.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTestUtil.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTestUtil.java
index b7ffcf2..c7ae2df 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTestUtil.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTestUtil.java
@@ -22,8 +22,6 @@ import java.io.File;
 import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import org.apache.asterix.api.common.AsterixHyracksIntegrationUtil;
 import org.apache.asterix.common.api.INcApplicationContext;
@@ -37,10 +35,12 @@ import org.apache.asterix.testframework.xml.TestSuite;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.hyracks.api.config.IOption;
 import org.apache.hyracks.control.nc.NodeControllerService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 public class ExecutionTestUtil {
 
-    protected static final Logger LOGGER = 
Logger.getLogger(ExecutionTestUtil.class.getName());
+    protected static final Logger LOGGER = LogManager.getLogger();
 
     protected static final String PATH_ACTUAL = "rttest" + File.separator;
 
@@ -60,11 +60,11 @@ public class ExecutionTestUtil {
             AsterixHyracksIntegrationUtil alternateIntegrationUtil, boolean 
startHdfs, List<Pair<IOption, Object>> opts)
             throws Exception {
         System.out.println("Starting setup");
-        if (LOGGER.isLoggable(Level.INFO)) {
+        if (LOGGER.isInfoEnabled()) {
             LOGGER.info("Starting setup");
         }
 
-        if (LOGGER.isLoggable(Level.INFO)) {
+        if (LOGGER.isInfoEnabled()) {
             LOGGER.info("initializing pseudo cluster");
         }
         integrationUtil = alternateIntegrationUtil;
@@ -75,7 +75,7 @@ public class ExecutionTestUtil {
         }
         integrationUtil.init(cleanup, configFile);
 
-        if (LOGGER.isLoggable(Level.INFO)) {
+        if (LOGGER.isInfoEnabled()) {
             LOGGER.info("initializing HDFS");
         }
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/HDFSCluster.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/HDFSCluster.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/HDFSCluster.java
index 9d35d89..a89304a 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/HDFSCluster.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/HDFSCluster.java
@@ -31,8 +31,6 @@ import 
org.apache.hadoop.hdfs.server.common.HdfsServerConstants.StartupOption;
 import org.apache.hadoop.mapred.InputSplit;
 import org.apache.hadoop.mapred.JobConf;
 import org.apache.hadoop.mapred.TextInputFormat;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
 
 /**
  * Manages a Mini (local VM) HDFS cluster with a configured number of 
datanodes.
@@ -73,7 +71,6 @@ public class HDFSCluster {
         conf.addResource(new Path(basePath + PATH_TO_HADOOP_CONF + 
"/mapred-site.xml"));
         conf.addResource(new Path(basePath + PATH_TO_HADOOP_CONF + 
"/hdfs-site.xml"));
         cleanupLocal();
-        setLoggingLevel(Level.WARN);
         conf.set(MiniDFSCluster.HDFS_MINIDFS_BASEDIR, MINIDFS_BASEDIR);
         MiniDFSCluster.Builder build = new MiniDFSCluster.Builder(conf);
         build.nameNodePort(nameNodePort);
@@ -84,11 +81,6 @@ public class HDFSCluster {
         loadData(basePath);
     }
 
-    private void setLoggingLevel(Level level) {
-        Logger rootLogger = Logger.getRootLogger();
-        rootLogger.setLevel(level);
-    }
-
     private void loadData(String localDataRoot) throws IOException {
         Path destDir = new Path(HDFS_PATH);
         dfs.mkdirs(destDir);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/OptimizerParserTest.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/OptimizerParserTest.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/OptimizerParserTest.java
index 24a1872..35bcff5 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/OptimizerParserTest.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/OptimizerParserTest.java
@@ -21,10 +21,11 @@ package org.apache.asterix.test.sqlpp;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.logging.Logger;
 
 import org.apache.asterix.test.base.AsterixTestHelper;
 import org.apache.hyracks.util.file.FileUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -35,7 +36,7 @@ import org.junit.runners.Parameterized.Parameters;
 @RunWith(Parameterized.class)
 public class OptimizerParserTest {
 
-    private static final Logger LOGGER = 
Logger.getLogger(OptimizerParserTest.class.getName());
+    private static final Logger LOGGER = LogManager.getLogger();
 
     private static final String EXTENSION_QUERY = "sqlpp";
     private static final String EXTENSION_RESULT = "ast";

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/af4018dd/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/ParserTestExecutor.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/ParserTestExecutor.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/ParserTestExecutor.java
index 493af30..d78cd94 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/ParserTestExecutor.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/ParserTestExecutor.java
@@ -152,7 +152,7 @@ public class ParserTestExecutor extends TestExecutor {
             runScriptAndCompareWithResult(queryFile, new 
PrintWriter(System.err), expectedFile, actualResultFile,
                     ComparisonEnum.TEXT);
         } catch (Exception e) {
-            GlobalConfig.ASTERIX_LOGGER.warning("Failed while testing file " + 
queryFile);
+            GlobalConfig.ASTERIX_LOGGER.warn("Failed while testing file " + 
queryFile);
             throw e;
         } finally {
             writer.close();

Reply via email to