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

guoyp pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/griffin.git


The following commit(s) were added to refs/heads/master by this push:
     new 073c6f6  [GRIFFIN-263] Use independent logger for griffin
073c6f6 is described below

commit 073c6f61ea7aaf27e1c7cc5c4729c90f69805afe
Author: wankunde <[email protected]>
AuthorDate: Wed Jul 10 17:30:13 2019 +0800

    [GRIFFIN-263] Use independent logger for griffin
    
    When we run DQJob,  user can only set logger level for spark execution 
engine. 
    ```java
      sparkSession.sparkContext.setLogLevel(sparkParam.getLogLevel)
    ```
    
    We have independent logger for griffin, which would be very helpful to 
debug or understand the internal of griffin. 
    ```java
    var logLevel = getGriffinLogLevel() 
sparkSession.sparkContext.setLogLevel(sparkParam.getLogLevel) 
griffinLogger.setLevel(logLevel)
    ```
     
    
    Author: wankunde <[email protected]>
    
    Closes #507 from wankunde/loggable.
---
 .../main/scala/org/apache/griffin/measure/Loggable.scala  | 15 +++++++++++++--
 .../apache/griffin/measure/launch/batch/BatchDQApp.scala  |  2 ++
 .../griffin/measure/launch/streaming/StreamingDQApp.scala |  2 ++
 3 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/measure/src/main/scala/org/apache/griffin/measure/Loggable.scala 
b/measure/src/main/scala/org/apache/griffin/measure/Loggable.scala
index 2e113ab..558eb6d 100644
--- a/measure/src/main/scala/org/apache/griffin/measure/Loggable.scala
+++ b/measure/src/main/scala/org/apache/griffin/measure/Loggable.scala
@@ -18,11 +18,22 @@ under the License.
 */
 package org.apache.griffin.measure
 
-import org.slf4j.LoggerFactory
+import org.apache.log4j.Level
+import org.apache.log4j.Logger
 
 trait Loggable {
 
-  @transient private lazy val logger = LoggerFactory.getLogger(getClass)
+  @transient private lazy val logger = Logger.getLogger(getClass)
+
+  @transient protected lazy val griffinLogger = 
Logger.getLogger("org.apache.griffin")
+
+  def getGriffinLogLevel(): Level = {
+    var logger = griffinLogger
+    while (logger != null && logger.getLevel == null) {
+      logger = logger.getParent.asInstanceOf[Logger]
+    }
+    logger.getLevel
+  }
 
   protected def info(msg: String): Unit = {
     logger.info(msg)
diff --git 
a/measure/src/main/scala/org/apache/griffin/measure/launch/batch/BatchDQApp.scala
 
b/measure/src/main/scala/org/apache/griffin/measure/launch/batch/BatchDQApp.scala
index 97bffdd..fe03508 100644
--- 
a/measure/src/main/scala/org/apache/griffin/measure/launch/batch/BatchDQApp.scala
+++ 
b/measure/src/main/scala/org/apache/griffin/measure/launch/batch/BatchDQApp.scala
@@ -57,7 +57,9 @@ case class BatchDQApp(allParam: GriffinConfig) extends DQApp {
     conf.setAll(sparkParam.getConfig)
     conf.set("spark.sql.crossJoin.enabled", "true")
     sparkSession = 
SparkSession.builder().config(conf).enableHiveSupport().getOrCreate()
+    var logLevel = getGriffinLogLevel()
     sparkSession.sparkContext.setLogLevel(sparkParam.getLogLevel)
+    griffinLogger.setLevel(logLevel)
     sqlContext = sparkSession.sqlContext
 
     // register udf
diff --git 
a/measure/src/main/scala/org/apache/griffin/measure/launch/streaming/StreamingDQApp.scala
 
b/measure/src/main/scala/org/apache/griffin/measure/launch/streaming/StreamingDQApp.scala
index 0de8980..502f8cb 100644
--- 
a/measure/src/main/scala/org/apache/griffin/measure/launch/streaming/StreamingDQApp.scala
+++ 
b/measure/src/main/scala/org/apache/griffin/measure/launch/streaming/StreamingDQApp.scala
@@ -63,7 +63,9 @@ case class StreamingDQApp(allParam: GriffinConfig) extends 
DQApp {
     conf.setAll(sparkParam.getConfig)
     conf.set("spark.sql.crossJoin.enabled", "true")
     sparkSession = 
SparkSession.builder().config(conf).enableHiveSupport().getOrCreate()
+    var logLevel = getGriffinLogLevel()
     sparkSession.sparkContext.setLogLevel(sparkParam.getLogLevel)
+    griffinLogger.setLevel(logLevel)
     sqlContext = sparkSession.sqlContext
 
     // clear checkpoint directory

Reply via email to