Repository: incubator-kylin
Updated Branches:
  refs/heads/2.x-staging 356800307 -> 91c96b4c9


KYLIN-1160 Set default logging configuration in JDBC and Backend code

Signed-off-by: Li, Yang <yang...@ebay.com>


Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/e9844f4f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/e9844f4f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/e9844f4f

Branch: refs/heads/2.x-staging
Commit: e9844f4f95898b90841cbb69c78f1afa39e96319
Parents: 3568003
Author: lidongsjtu <don...@ebay.com>
Authored: Tue Nov 24 14:07:00 2015 +0800
Committer: Li, Yang <yang...@ebay.com>
Committed: Wed Nov 25 15:42:19 2015 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/common/KylinConfig.java    |  4 +++
 .../kylin/common/util/Log4jConfigurer.java      | 37 ++++++++++++++++++++
 .../main/java/org/apache/kylin/jdbc/Driver.java |  2 ++
 .../java/org/apache/kylin/jdbc/KylinClient.java |  4 +--
 .../org/apache/kylin/jdbc/KylinConnection.java  |  4 +--
 .../kylin/jdbc/util/DefaultLoggerFactory.java   | 21 -----------
 .../util/DefaultSslProtocolSocketFactory.java   |  3 +-
 .../jdbc/util/DefaultX509TrustManager.java      |  3 +-
 .../apache/kylin/jdbc/util/Log4jConfigurer.java | 37 ++++++++++++++++++++
 9 files changed, 88 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/e9844f4f/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java
----------------------------------------------------------------------
diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java 
b/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java
index e76aa94..c072d34 100644
--- a/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java
+++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java
@@ -39,6 +39,7 @@ import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.kylin.common.restclient.RestClient;
 import org.apache.kylin.common.util.CliCommandExecutor;
+import org.apache.kylin.common.util.Log4jConfigurer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -252,12 +253,15 @@ public class KylinConfig implements Serializable {
      * $KYLIN_CONF/kylin.properties 2. Check the 
$KYLIN_HOME/conf/kylin.properties
      */
     private static KylinConfig loadKylinConfig() {
+        Log4jConfigurer.initLogger();
+
         InputStream is = getKylinPropertiesAsInputSteam();
         if (is == null) {
             throw new IllegalArgumentException("Failed to load kylin config");
         }
         KylinConfig config = new KylinConfig();
         config.reloadKylinConfig(is);
+
         return config;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/e9844f4f/core-common/src/main/java/org/apache/kylin/common/util/Log4jConfigurer.java
----------------------------------------------------------------------
diff --git 
a/core-common/src/main/java/org/apache/kylin/common/util/Log4jConfigurer.java 
b/core-common/src/main/java/org/apache/kylin/common/util/Log4jConfigurer.java
new file mode 100644
index 0000000..c329ced
--- /dev/null
+++ 
b/core-common/src/main/java/org/apache/kylin/common/util/Log4jConfigurer.java
@@ -0,0 +1,37 @@
+package org.apache.kylin.common.util;
+
+import java.util.Enumeration;
+
+import org.apache.log4j.ConsoleAppender;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+import org.apache.log4j.PatternLayout;
+
+/**
+ * Created by dongli on 11/24/15.
+ */
+public class Log4jConfigurer {
+    private final static String DEFAULT_PATTERN_LAYOUT = "L4J [%d{yyyy-MM-dd 
HH:mm:ss,SSS}][%p][%c] - %m%n";
+    private static boolean INITIALIZED = false;
+
+    public static void initLogger() {
+        if (!INITIALIZED && !isConfigured()) {
+            org.apache.log4j.BasicConfigurator.configure(new 
ConsoleAppender(new PatternLayout(DEFAULT_PATTERN_LAYOUT)));
+            INITIALIZED = true;
+        }
+    }
+
+    private static boolean isConfigured() {
+        if (LogManager.getRootLogger().getAllAppenders().hasMoreElements()) {
+            return true;
+        } else {
+            Enumeration loggers = LogManager.getCurrentLoggers();
+            while (loggers.hasMoreElements()) {
+                Logger logger = (Logger) loggers.nextElement();
+                if (logger.getAllAppenders().hasMoreElements())
+                    return true;
+            }
+        }
+        return false;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/e9844f4f/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java 
b/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java
index f9d840a..7f3c407 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/Driver.java
@@ -25,6 +25,7 @@ import org.apache.calcite.avatica.AvaticaConnection;
 import org.apache.calcite.avatica.DriverVersion;
 import org.apache.calcite.avatica.Meta;
 import org.apache.calcite.avatica.UnregisteredDriver;
+import org.apache.kylin.jdbc.util.Log4jConfigurer;
 
 /**
  * <p>
@@ -72,6 +73,7 @@ public class Driver extends UnregisteredDriver {
     public static final String CONNECT_STRING_PREFIX = "jdbc:kylin:";
     static {
         try {
+            Log4jConfigurer.initLogger();
             DriverManager.registerDriver(new Driver());
         } catch (SQLException e) {
             throw new RuntimeException("Error occurred while registering JDBC 
driver " + Driver.class.getName() + ": " + e.toString());

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/e9844f4f/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java 
b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
index a8f101e..a5680d6 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java
@@ -36,16 +36,16 @@ import org.apache.kylin.jdbc.json.SQLResponseStub;
 import org.apache.kylin.jdbc.json.StatementParameter;
 import org.apache.kylin.jdbc.json.TableMetaStub;
 import org.apache.kylin.jdbc.json.TableMetaStub.ColumnMetaStub;
-import org.apache.kylin.jdbc.util.DefaultLoggerFactory;
 import org.apache.kylin.jdbc.util.DefaultSslProtocolSocketFactory;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
 public class KylinClient implements IRemoteClient {
 
-    private static final Logger logger = 
DefaultLoggerFactory.getLogger(KylinClient.class);
+    private static final Logger logger = 
LoggerFactory.getLogger(KylinClient.class);
 
     private final KylinConnection conn;
     private final Properties connProps;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/e9844f4f/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java 
b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java
index 4558d0e..86c8d1d 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java
@@ -36,12 +36,12 @@ import org.apache.calcite.avatica.Meta;
 import org.apache.calcite.avatica.Meta.CursorFactory;
 import org.apache.calcite.avatica.Meta.Signature;
 import org.apache.calcite.avatica.UnregisteredDriver;
-import org.apache.kylin.jdbc.util.DefaultLoggerFactory;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class KylinConnection extends AvaticaConnection {
 
-    private static final Logger logger = 
DefaultLoggerFactory.getLogger(KylinConnection.class);
+    private static final Logger logger = 
LoggerFactory.getLogger(KylinConnection.class);
 
     private final String baseUrl;
     private final String project;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/e9844f4f/jdbc/src/main/java/org/apache/kylin/jdbc/util/DefaultLoggerFactory.java
----------------------------------------------------------------------
diff --git 
a/jdbc/src/main/java/org/apache/kylin/jdbc/util/DefaultLoggerFactory.java 
b/jdbc/src/main/java/org/apache/kylin/jdbc/util/DefaultLoggerFactory.java
deleted file mode 100644
index f5a1a28..0000000
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/util/DefaultLoggerFactory.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.apache.kylin.jdbc.util;
-
-import org.apache.log4j.ConsoleAppender;
-import org.apache.log4j.PatternLayout;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Created by dongli on 11/23/15.
- */
-public class DefaultLoggerFactory {
-
-    private final static String DEFAULT_PATTERN_LAYOUT = "L4J [%d{yyyy-MM-dd 
HH:mm:ss,SSS}][%p][%c] - %m%n";
-
-    public static Logger getLogger(Class<?> clazz) {
-        org.apache.log4j.Logger log4jLogger = 
org.apache.log4j.Logger.getLogger(clazz);
-        if (log4jLogger != null && 
!log4jLogger.getAllAppenders().hasMoreElements())
-            log4jLogger.addAppender(new ConsoleAppender(new 
PatternLayout(DEFAULT_PATTERN_LAYOUT)));
-        return LoggerFactory.getLogger(clazz);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/e9844f4f/jdbc/src/main/java/org/apache/kylin/jdbc/util/DefaultSslProtocolSocketFactory.java
----------------------------------------------------------------------
diff --git 
a/jdbc/src/main/java/org/apache/kylin/jdbc/util/DefaultSslProtocolSocketFactory.java
 
b/jdbc/src/main/java/org/apache/kylin/jdbc/util/DefaultSslProtocolSocketFactory.java
index 28fc42a..83020b5 100644
--- 
a/jdbc/src/main/java/org/apache/kylin/jdbc/util/DefaultSslProtocolSocketFactory.java
+++ 
b/jdbc/src/main/java/org/apache/kylin/jdbc/util/DefaultSslProtocolSocketFactory.java
@@ -32,12 +32,13 @@ import 
org.apache.commons.httpclient.params.HttpConnectionParams;
 import org.apache.commons.httpclient.protocol.ControllerThreadSocketFactory;
 import org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  */
 public class DefaultSslProtocolSocketFactory implements 
SecureProtocolSocketFactory {
     /** Log object for this class. */
-    private static Logger logger = 
DefaultLoggerFactory.getLogger(DefaultSslProtocolSocketFactory.class);
+    private static Logger logger = 
LoggerFactory.getLogger(DefaultSslProtocolSocketFactory.class);
     private SSLContext sslcontext = null;
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/e9844f4f/jdbc/src/main/java/org/apache/kylin/jdbc/util/DefaultX509TrustManager.java
----------------------------------------------------------------------
diff --git 
a/jdbc/src/main/java/org/apache/kylin/jdbc/util/DefaultX509TrustManager.java 
b/jdbc/src/main/java/org/apache/kylin/jdbc/util/DefaultX509TrustManager.java
index 863cc9f..f3e4841 100644
--- a/jdbc/src/main/java/org/apache/kylin/jdbc/util/DefaultX509TrustManager.java
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/util/DefaultX509TrustManager.java
@@ -30,6 +30,7 @@ import javax.net.ssl.TrustManagerFactory;
 import javax.net.ssl.X509TrustManager;
 
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author xduo
@@ -38,7 +39,7 @@ import org.slf4j.Logger;
 public class DefaultX509TrustManager implements X509TrustManager {
 
     /** Log object for this class. */
-    private static Logger logger = 
DefaultLoggerFactory.getLogger(DefaultX509TrustManager.class);
+    private static Logger logger = 
LoggerFactory.getLogger(DefaultX509TrustManager.class);
     private X509TrustManager standardTrustManager = null;
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/e9844f4f/jdbc/src/main/java/org/apache/kylin/jdbc/util/Log4jConfigurer.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/util/Log4jConfigurer.java 
b/jdbc/src/main/java/org/apache/kylin/jdbc/util/Log4jConfigurer.java
new file mode 100644
index 0000000..715d190
--- /dev/null
+++ b/jdbc/src/main/java/org/apache/kylin/jdbc/util/Log4jConfigurer.java
@@ -0,0 +1,37 @@
+package org.apache.kylin.jdbc.util;
+
+import java.util.Enumeration;
+
+import org.apache.log4j.ConsoleAppender;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+import org.apache.log4j.PatternLayout;
+
+/**
+ * Created by dongli on 11/24/15.
+ */
+public class Log4jConfigurer {
+    private final static String DEFAULT_PATTERN_LAYOUT = "L4J [%d{yyyy-MM-dd 
HH:mm:ss,SSS}][%p][%c] - %m%n";
+    private static boolean INITIALIZED = false;
+
+    public static void initLogger() {
+        if (!INITIALIZED && !isConfigured()) {
+            org.apache.log4j.BasicConfigurator.configure(new 
ConsoleAppender(new PatternLayout(DEFAULT_PATTERN_LAYOUT)));
+            INITIALIZED = true;
+        }
+    }
+
+    private static boolean isConfigured() {
+        if (LogManager.getRootLogger().getAllAppenders().hasMoreElements()) {
+            return true;
+        } else {
+            Enumeration loggers = LogManager.getCurrentLoggers();
+            while (loggers.hasMoreElements()) {
+                Logger logger = (Logger) loggers.nextElement();
+                if (logger.getAllAppenders().hasMoreElements())
+                    return true;
+            }
+        }
+        return false;
+    }
+}

Reply via email to