【问题标题】:How to configure the log level of a specific logger using log4j in pyspark?如何在 pyspark 中使用 log4j 配置特定记录器的日志级别?
【发布时间】:2017-06-04 02:10:33
【问题描述】:
从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 文件来配置这个特定 logger 的日志级别或如何动态配置它?
【问题讨论】:
标签:
logging
apache-spark
log4j
pyspark
【解决方案1】:
关于如何通过 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")