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; + } +}