From 044971eca0ff3c2ce62afa665dbd3072d52cbbec Mon Sep 17 00:00:00 2001 From: Prajwal Tuladhar Date: Wed, 22 Jun 2016 16:30:10 -0700 Subject: [SPARK-16131] initialize internal logger lazily in Scala preferred way ## What changes were proposed in this pull request? Initialize logger instance lazily in Scala preferred way ## How was this patch tested? By running `./build/mvn clean test` locally Author: Prajwal Tuladhar Closes #13842 from infynyxx/spark_internal_logger. --- .../src/main/scala/org/apache/spark/internal/Logging.scala | 14 ++++---------- .../scheduler/cluster/CoarseGrainedSchedulerBackend.scala | 2 -- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/core/src/main/scala/org/apache/spark/internal/Logging.scala b/core/src/main/scala/org/apache/spark/internal/Logging.scala index 66a0cfec62..c51050c13d 100644 --- a/core/src/main/scala/org/apache/spark/internal/Logging.scala +++ b/core/src/main/scala/org/apache/spark/internal/Logging.scala @@ -32,7 +32,10 @@ private[spark] trait Logging { // Make the log field transient so that objects with Logging can // be serialized and used on another machine - @transient private var log_ : Logger = null + @transient lazy val log: Logger = { + initializeLogIfNecessary(false) + LoggerFactory.getLogger(logName) + } // Method to get the logger name for this object protected def logName = { @@ -40,15 +43,6 @@ private[spark] trait Logging { this.getClass.getName.stripSuffix("$") } - // Method to get or create the logger for this object - protected def log: Logger = { - if (log_ == null) { - initializeLogIfNecessary(false) - log_ = LoggerFactory.getLogger(logName) - } - log_ - } - // Log methods that take only a String protected def logInfo(msg: => String) { if (log.isInfoEnabled) log.info(msg) diff --git a/core/src/main/scala/org/apache/spark/scheduler/cluster/CoarseGrainedSchedulerBackend.scala b/core/src/main/scala/org/apache/spark/scheduler/cluster/CoarseGrainedSchedulerBackend.scala index 967c4d5325..8259923ce3 100644 --- a/core/src/main/scala/org/apache/spark/scheduler/cluster/CoarseGrainedSchedulerBackend.scala +++ b/core/src/main/scala/org/apache/spark/scheduler/cluster/CoarseGrainedSchedulerBackend.scala @@ -100,8 +100,6 @@ class CoarseGrainedSchedulerBackend(scheduler: TaskSchedulerImpl, val rpcEnv: Rp // instance across threads private val ser = SparkEnv.get.closureSerializer.newInstance() - override protected def log = CoarseGrainedSchedulerBackend.this.log - protected val addressToExecutorId = new HashMap[RpcAddress, String] private val reviveThread = -- cgit v1.2.3