Как сохранить / записать сообщение об ошибке Spark в файл журнала в программном скрипте Python? - PullRequest
0 голосов
/ 13 сентября 2018

В моем программном скрипте Python / Spark у меня есть

logger = logging.getLogger(results.app_name)
logger.setLevel(logging.DEBUG)
# Create file handler which logs even debug messages
fh = logging.FileHandler(outputPath+".log")
fh.setLevel(logging.DEBUG)
# Create console handler with a higher log level
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)

sc = spark.sparkContext
sc.setLogLevel("WARN")
log4jLogger = sc._jvm.org.apache.log4j
LOGGER = log4jLogger.LogManager.getLogger(__name__)

для добавления информации регистратора (logger.info()) и ожидаемых ошибок при определенных обстоятельствах (logger.error()) для консолии пользовательский файл журнала (т. е. outputPath+".log").Однако, когда я получаю неожиданные ошибки (например, сбой программы, любую ошибку в сети, проблемы с тайм-аутом, наборы данных не совпадают), они выводятся только на консоль.

Как мне также добавить отладочные / непредвиденные ошибки в пользовательский файл журнала?

например, я получил сообщение об ошибке, напечатанное на консоли, но мне нравится, чтобы оно также автоматически записывалось в файл журнала скриптом:

Traceback (последний вызов последний): Файл "/Users/lc/Documents/sparkprogram.py", строка 747, в фенотипах, порогах, r2All, pAll = регрессия (prsDict, pheno_file, pheno_delim, pheno_columns, pheno_no_header, covarColumns = covar_columns, outputName = output = namelogger) Файл "/Users/lc/Documents/sparkprogram.py", строка 298, в регрессии assert samplesize == phenodata.shape [0], "Неравный размер выборки в файле фено и данные генотипа" AssertionError: Неравный размер выборки в фенотипеданные файла и генотипа

...