aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/scala/org
diff options
context:
space:
mode:
authorHolden Karau <holden@pigscanfly.ca>2015-05-01 18:02:10 -0700
committerPatrick Wendell <patrick@databricks.com>2015-05-01 18:02:51 -0700
commitae98eec730125c1153dcac9ea941959cc79e4f42 (patch)
tree1aa9d4812cbac657f55acbcdf0894661d0dbc8a4 /core/src/main/scala/org
parent4786484076865c56c3fc23c49819b9be2933d287 (diff)
downloadspark-ae98eec730125c1153dcac9ea941959cc79e4f42.tar.gz
spark-ae98eec730125c1153dcac9ea941959cc79e4f42.tar.bz2
spark-ae98eec730125c1153dcac9ea941959cc79e4f42.zip
[SPARK-3444] Provide an easy way to change log level
Add support for changing the log level at run time through the SparkContext. Based on an earlier PR, #2433 includes CR feedback from pwendel & davies Author: Holden Karau <holden@pigscanfly.ca> Closes #5791 from holdenk/SPARK-3444-provide-an-easy-way-to-change-log-level-r2 and squashes the following commits: 3bf3be9 [Holden Karau] fix exception 42ba873 [Holden Karau] fix exception 9117244 [Holden Karau] Only allow valid log levels, throw exception if invalid log level. 338d7bf [Holden Karau] rename setLoggingLevel to setLogLevel fac14a0 [Holden Karau] Fix style errors d9d03f3 [Holden Karau] Add support for changing the log level at run time through the SparkContext. Based on an earlier PR, #2433 includes CR feedback from @pwendel & @davies
Diffstat (limited to 'core/src/main/scala/org')
-rw-r--r--core/src/main/scala/org/apache/spark/SparkContext.scala13
-rw-r--r--core/src/main/scala/org/apache/spark/api/java/JavaSparkContext.scala8
-rw-r--r--core/src/main/scala/org/apache/spark/util/Utils.scala7
3 files changed, 28 insertions, 0 deletions
diff --git a/core/src/main/scala/org/apache/spark/SparkContext.scala b/core/src/main/scala/org/apache/spark/SparkContext.scala
index 3f7cba6dbc..4ef90546a2 100644
--- a/core/src/main/scala/org/apache/spark/SparkContext.scala
+++ b/core/src/main/scala/org/apache/spark/SparkContext.scala
@@ -347,6 +347,19 @@ class SparkContext(config: SparkConf) extends Logging with ExecutorAllocationCli
value
}
+ /** Control our logLevel. This overrides any user-defined log settings.
+ * @param logLevel The desired log level as a string.
+ * Valid log levels include: ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN
+ */
+ def setLogLevel(logLevel: String) {
+ val validLevels = Seq("ALL", "DEBUG", "ERROR", "FATAL", "INFO", "OFF", "TRACE", "WARN")
+ if (!validLevels.contains(logLevel)) {
+ throw new IllegalArgumentException(
+ s"Supplied level $logLevel did not match one of: ${validLevels.mkString(",")}")
+ }
+ Utils.setLogLevel(org.apache.log4j.Level.toLevel(logLevel))
+ }
+
try {
_conf = config.clone()
_conf.validateSettings()
diff --git a/core/src/main/scala/org/apache/spark/api/java/JavaSparkContext.scala b/core/src/main/scala/org/apache/spark/api/java/JavaSparkContext.scala
index 3be6783bba..02e49a853c 100644
--- a/core/src/main/scala/org/apache/spark/api/java/JavaSparkContext.scala
+++ b/core/src/main/scala/org/apache/spark/api/java/JavaSparkContext.scala
@@ -755,6 +755,14 @@ class JavaSparkContext(val sc: SparkContext)
*/
def getLocalProperty(key: String): String = sc.getLocalProperty(key)
+ /** Control our logLevel. This overrides any user-defined log settings.
+ * @param logLevel The desired log level as a string.
+ * Valid log levels include: ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN
+ */
+ def setLogLevel(logLevel: String) {
+ sc.setLogLevel(logLevel)
+ }
+
/**
* Assigns a group ID to all the jobs started by this thread until the group ID is set to a
* different value or cleared.
diff --git a/core/src/main/scala/org/apache/spark/util/Utils.scala b/core/src/main/scala/org/apache/spark/util/Utils.scala
index 4b5a5df5ef..844f0cd22d 100644
--- a/core/src/main/scala/org/apache/spark/util/Utils.scala
+++ b/core/src/main/scala/org/apache/spark/util/Utils.scala
@@ -2023,6 +2023,13 @@ private[spark] object Utils extends Logging {
}
/**
+ * configure a new log4j level
+ */
+ def setLogLevel(l: org.apache.log4j.Level) {
+ org.apache.log4j.Logger.getRootLogger().setLevel(l)
+ }
+
+ /**
* config a log4j properties used for testsuite
*/
def configTestLog4j(level: String): Unit = {