|
18 | 18 | package org.apache.spark.internal
|
19 | 19 |
|
20 | 20 | import com.palantir.logsafe.Arg
|
21 |
| -import org.slf4j.LoggerFactory |
| 21 | +import org.slf4j.{Logger, LoggerFactory} |
22 | 22 |
|
23 | 23 | trait SafeLogging {
|
24 |
| - private[this] val log_ = LoggerFactory.getLogger(this.getClass.getName) |
| 24 | + // Taken from Logging.scala |
| 25 | + @transient private[this] var safeLog_ : Logger = null |
25 | 26 |
|
26 |
| - def safeLogIsInfoEnabled: Boolean = log_.isInfoEnabled |
| 27 | + // Method to get the logger name for this object |
| 28 | + protected def getLogName: String = { |
| 29 | + // Ignore trailing $'s in the class names for Scala objects |
| 30 | + this.getClass.getName.stripSuffix("$") |
| 31 | + } |
| 32 | + |
| 33 | + // Method to get or create the logger for this object |
| 34 | + protected def safeLog: Logger = { |
| 35 | + if (safeLog_ == null) { |
| 36 | + safeLog_ = LoggerFactory.getLogger(getLogName) |
| 37 | + } |
| 38 | + safeLog_ |
| 39 | + } |
| 40 | + |
| 41 | + def safeLogIsInfoEnabled: Boolean = safeLog.isInfoEnabled |
27 | 42 |
|
28 | 43 | def safeLogInfo(message: String, args: Arg[_]*): Unit = {
|
29 |
| - if (log_.isInfoEnabled) log_.info(message, args: _*) |
| 44 | + if (safeLog.isInfoEnabled) safeLog.info(message, args: _*) |
30 | 45 | }
|
31 | 46 |
|
32 | 47 | def safeLogInfo(message: String, error: Throwable, args: Arg[_]*): Unit = {
|
33 |
| - if (log_.isInfoEnabled) log_.info(message, args :+ error: _*) |
| 48 | + if (safeLog.isInfoEnabled) safeLog.info(message, args :+ error: _*) |
34 | 49 | }
|
35 | 50 |
|
36 | 51 | def safeLogDebug(message: String, args: Arg[_]*): Unit = {
|
37 |
| - if (log_.isDebugEnabled) log_.debug(message, args: _*) |
| 52 | + if (safeLog.isDebugEnabled) safeLog.debug(message, args: _*) |
38 | 53 | }
|
39 | 54 |
|
40 | 55 | def safeLogDebug(message: String, error: Throwable, args: Arg[_]*): Unit = {
|
41 |
| - if (log_.isDebugEnabled) log_.debug(message, args :+ error: _*) |
| 56 | + if (safeLog.isDebugEnabled) safeLog.debug(message, args :+ error: _*) |
42 | 57 | }
|
43 | 58 |
|
44 | 59 | def safeLogTrace(message: String, args: Arg[_]*): Unit = {
|
45 |
| - if (log_.isTraceEnabled) log_.trace(message, args: _*) |
| 60 | + if (safeLog.isTraceEnabled) safeLog.trace(message, args: _*) |
46 | 61 | }
|
47 | 62 |
|
48 | 63 | def safeLogTrace(message: String, error: Throwable, args: Arg[_]*): Unit = {
|
49 |
| - if (log_.isTraceEnabled) log_.trace(message, args :+ error: _*) |
| 64 | + if (safeLog.isTraceEnabled) safeLog.trace(message, args :+ error: _*) |
50 | 65 | }
|
51 | 66 |
|
52 | 67 | def safeLogWarning(message: String, args: Arg[_]*): Unit = {
|
53 |
| - if (log_.isWarnEnabled) log_.warn(message, args: _*) |
| 68 | + if (safeLog.isWarnEnabled) safeLog.warn(message, args: _*) |
54 | 69 | }
|
55 | 70 |
|
56 | 71 | def safeLogWarning(message: String, error: Throwable, args: Arg[_]*): Unit = {
|
57 |
| - if (log_.isWarnEnabled) log_.warn(message, args :+ error: _*) |
| 72 | + if (safeLog.isWarnEnabled) safeLog.warn(message, args :+ error: _*) |
58 | 73 | }
|
59 | 74 |
|
60 | 75 | def safeLogError(message: String, args: Arg[_]*): Unit = {
|
61 |
| - if (log_.isErrorEnabled) log_.error(message, args: _*) |
| 76 | + if (safeLog.isErrorEnabled) safeLog.error(message, args: _*) |
62 | 77 | }
|
63 | 78 |
|
64 | 79 | def safeLogError(message: String, error: Throwable, args: Arg[_]*): Unit = {
|
65 |
| - if (log_.isErrorEnabled) log_.error(message, args :+ error: _*) |
| 80 | + if (safeLog.isErrorEnabled) safeLog.error(message, args :+ error: _*) |
66 | 81 | }
|
67 | 82 | }
|
68 | 83 |
|
0 commit comments