如何在pyspark中使用log4j配置特定记录器的日志级别?

时间:2017-01-19 11:32:19

标签: logging apache-spark log4j pyspark

this StackOverflow线程,我知道如何在pyspark中获取和使用log4j记录器,如下所示:

from pyspark import SparkContext
sc = SparkContext()
log4jLogger = sc._jvm.org.apache.log4j
LOGGER = log4jLogger.LogManager.getLogger('MYLOGGER')
LOGGER.info("pyspark script logger initialized")

使用 spark-submit 脚本可以正常工作。

我的问题是如何修改 log4j.properties 文件以配置此特定记录器的日志级别或如何动态配置它?

1 个答案:

答案 0 :(得分:2)

关于如何通过log4j.properties文件配置log4j还有其他答案,但我还没有看到有人提到如何动态地执行它,所以:

from pyspark import SparkContext
sc = SparkContext()
log4jLogger = sc._jvm.org.apache.log4j
LOGGER = log4jLogger.LogManager.getLogger('MYLOGGER')

# same call as you'd make in java, just using the py4j methods to do so
LOGGER.setLevel(log4jLogger.Level.WARN)

# will no longer print
LOGGER.info("pyspark script logger initialized")