【问题标题】:Remove startup message to change Spark log level删除启动消息以更改 Spark 日志级别
【发布时间】:2019-10-18 13:18:18
【问题描述】:

我正在使用 PySpark 运行 Python 脚本(和测试),并希望从日志中删除不相关的信息。

每次我启动它们时,我都会在控制台中显示以下消息:

将默认日志级别设置为“WARN”。

要调整日志级别,请使用 sc.setLogLevel(newLevel)。对于 SparkR,使用 setLogLevel(newLevel)。

我怎样才能完全删除它? (最好在 log4j.properties 中)


我已经尝试过的:

我在 log4j.properties 中设置了log4j.rootCategory=ERROR, console

如消息所述执行sc.setLogLevel(newLevel) 仅适用于以下日志,而不适用于脚本开头。

log4j.properties 中设置 log4j.logger.org.apache.spark=ERROR 不会删除该消息。

我搜索了很多,但找不到相关配置。


Spark Github(在Logging.scala 中),我可以看到有一个silent 变量用于显示消息,但我找不到它的更改位置:

if (!silent) {
  System.err.printf("Setting default log level to \"%s\".\n", replLevel)
  System.err.println("To adjust logging level use sc.setLogLevel(newLevel). " +
    "For SparkR, use setLogLevel(newLevel).")
}

提前感谢您的帮助,

【问题讨论】:

    标签: python-3.x apache-spark pyspark log4j


    【解决方案1】:

    我找到了解决办法!

    就在我从Logging.scala 引用的代码之前,有:

    if (replLevel != rootLogger.getEffectiveLevel()) {
      if (!silent) {
         ...
      }
    }
    

    这意味着可以在 log4j.properties 中将 replroot 记录器的日志级别设置为不同,而不是尝试更改 silent 变量,以实现结果相同:

    log4j.rootCategory=WARN, console
    log4j.logger.org.apache.spark.repl.Main=ERROR
    

    您还可以添加 log4j.logger.org.apache.spark=ERROR 以删除 Spark 中可能出现的其他警告。

    【讨论】:

      猜你喜欢
      • 2016-02-20
      • 2021-09-14
      • 2011-03-09
      • 2013-01-28
      • 2017-12-07
      • 1970-01-01
      • 2021-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多