2017-01-19 6 views
1

От this StackOverflow нить, я знаю, как получить и использовать log4j регистратор в pyspark так:Как настроить уровень журнала определенного регистратора с помощью log4j в pyspark?

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

Который работает хорошо с искровым представить сценарий.

Мой вопрос заключается в том, как изменить log4j.properties файл, чтобы настроить уровень протоколирования для этот конкретный регистратор или как настроить его динамически?

ответ

1

Есть другие ответы о том, как настроить log4j с помощью файла log4j.properties, но я не видел никого, говоря уже о том, чтобы сделать это динамически, так что:

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")