Scala 如何在IntelliJ IDEA中为Spark应用程序设置日志记录级别?

Scala 如何在IntelliJ IDEA中为Spark应用程序设置日志记录级别?,scala,intellij-idea,apache-spark,Scala,Intellij Idea,Apache Spark,我正在IntelliJ中从事一个Scala项目,该项目是通过SBT创建的。该项目将Spark作为其依赖项之一。我仍处于开发阶段,所以所有东西都在本地机器上运行 例如,如何更改Spark配置,如日志记录级别?默认情况下,Spark会记录您希望在日志中看到的几乎所有内容,但是,如果需要更改日志记录行为,可以在Apache Spark配置的conf目录中编辑log4j.properties。如果您使用的是预构建版本,那么可以在/home/coco/Applications/spark-1.4.0-bi

我正在IntelliJ中从事一个Scala项目,该项目是通过SBT创建的。该项目将Spark作为其依赖项之一。我仍处于开发阶段,所以所有东西都在本地机器上运行


例如,如何更改Spark配置,如日志记录级别?

默认情况下,Spark会记录您希望在日志中看到的几乎所有内容,但是,如果需要更改日志记录行为,可以在Apache Spark配置的conf目录中编辑log4j.properties。如果您使用的是预构建版本,那么可以在/home/coco/Applications/spark-1.4.0-bin-hadoop2.6/conf目录中找到它。有一个模板文件“log4j.properties.template”,您必须将其复制到“log4j.properties”,并根据需要对其进行编辑。我希望这会有所帮助。

如果您正在使用IDE进行本地开发,您可以通过以下方式在运行时更改日志级别:

LogManager.getRootLogger.setLevel(Level.ALL)


Ps:在代码中创建SparkContext/SQLContext之后再放这一行。

将log4j.properties文件放在标记为resources的目录下,spark将读取此log4j配置。

在Eclipse下设置SparkContext上的日志级别对我很有效

spark.sparkContext.setLogLevel("WARN")  

用于在spark 2.0中以编程方式关闭/设置日志级别+

Logger.getLogger("org.apache.spark").setLevel(Level.OFF);

我很想弄清楚如何使用项目本地属性文件(一个示例文件会更好),但我能够在Spark 2.2中使用以下代码实现这一点:

import org.apache.log4j.{Level, Logger}

object MySparkApp {

    def main(args: Array[String]): Unit = {
      Logger.getLogger("org.apache.spark").setLevel(Level.WARN)

这对我不起作用。我尝试了
Level.OFF
Level.ERROR
,但我总是收到
INFO
日志消息。我使用的是spark 2.1.0,显然我遇到了同样的问题。我也是,你能跟进吗?这对我很有效。为所有记录器设置日志级别的公认答案无效。尽管如此,其中的一个问题是,我没有看到任何日志,甚至没有看到应用程序中的日志。不知道是因为这个还是其他原因。如果不是因为这些原因,请参阅:通过logback而不是log4j设置日志配置。