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/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/b7b6793f Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/b7b6793f Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/b7b6793f Branch: refs/heads/1.x-HBase1.1.3 Commit: b7b6793f814eff6eda6bff6eaef22106e11b789c Parents: 2b0c3a5 Author: lidongsjtu <don...@ebay.com> Authored: Tue Nov 24 14:06:46 2015 +0800 Committer: Li, Yang <yang...@ebay.com> Committed: Wed Nov 25 15:15:35 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 | 5 +-- .../jdbc/util/DefaultX509TrustManager.java | 13 +++---- .../apache/kylin/jdbc/util/Log4jConfigurer.java | 37 ++++++++++++++++++++ 9 files changed, 94 insertions(+), 33 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/b7b6793f/common/src/main/java/org/apache/kylin/common/KylinConfig.java ---------------------------------------------------------------------- diff --git a/common/src/main/java/org/apache/kylin/common/KylinConfig.java b/common/src/main/java/org/apache/kylin/common/KylinConfig.java index edb2586..a8f7c5d 100644 --- a/common/src/main/java/org/apache/kylin/common/KylinConfig.java +++ b/common/src/main/java/org/apache/kylin/common/KylinConfig.java @@ -35,6 +35,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; @@ -243,12 +244,15 @@ public class KylinConfig { * @return */ 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/kylin/blob/b7b6793f/common/src/main/java/org/apache/kylin/common/util/Log4jConfigurer.java ---------------------------------------------------------------------- diff --git a/common/src/main/java/org/apache/kylin/common/util/Log4jConfigurer.java b/common/src/main/java/org/apache/kylin/common/util/Log4jConfigurer.java new file mode 100644 index 0000000..c329ced --- /dev/null +++ b/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/kylin/blob/b7b6793f/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 b58e8ff..a0074b1 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/kylin/blob/b7b6793f/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 708bfd0..f22a515 100644 --- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java +++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinClient.java @@ -53,16 +53,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/kylin/blob/b7b6793f/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 5b99641..cf5526b 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/kylin/blob/b7b6793f/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/kylin/blob/b7b6793f/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 3615568..d46111c 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 LOG = DefaultLoggerFactory.getLogger(DefaultSslProtocolSocketFactory.class); + private static Logger logger = LoggerFactory.getLogger(DefaultSslProtocolSocketFactory.class); private SSLContext sslcontext = null; /** @@ -54,7 +55,7 @@ public class DefaultSslProtocolSocketFactory implements SecureProtocolSocketFact return context; } catch (Exception e) { - LOG.error(e.getMessage(), e); + logger.error(e.getMessage(), e); throw new HttpClientError(e.toString()); } } http://git-wip-us.apache.org/repos/asf/kylin/blob/b7b6793f/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 9c93676..f79aca3 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 LOG = DefaultLoggerFactory.getLogger(DefaultX509TrustManager.class); + private static Logger logger = LoggerFactory.getLogger(DefaultX509TrustManager.class); private X509TrustManager standardTrustManager = null; /** @@ -70,12 +71,12 @@ public class DefaultX509TrustManager implements X509TrustManager { } public boolean isServerTrusted(X509Certificate[] certificates) { - if ((certificates != null) && LOG.isDebugEnabled()) { - LOG.debug("Server certificate chain:"); + if ((certificates != null) && logger.isDebugEnabled()) { + logger.debug("Server certificate chain:"); for (int i = 0; i < certificates.length; i++) { - if (LOG.isDebugEnabled()) { - LOG.debug("X509Certificate[" + i + "]=" + certificates[i]); + if (logger.isDebugEnabled()) { + logger.debug("X509Certificate[" + i + "]=" + certificates[i]); } } } @@ -86,7 +87,7 @@ public class DefaultX509TrustManager implements X509TrustManager { try { certificate.checkValidity(); } catch (CertificateException e) { - LOG.error(e.toString()); + logger.error(e.toString()); return false; } http://git-wip-us.apache.org/repos/asf/kylin/blob/b7b6793f/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; + } +}