Я пытаюсь настроить регистратор для моей работы AWS Glue с помощью модуля Python logging
. У меня есть работа Glue с типом «Python Shell» с использованием Python версии 3.
Ведение журнала работает нормально, если я создаю экземпляр регистратора без name
, но если я даю своему регистратору name
, он больше не работает, и я получаю сообщение об ошибке: Log stream not found
.
У меня есть следующий код в примере работы с клеем:
import sys
import logging
# Version 1 - this works fine
logger = logging.getLogger()
log_format = "[%(asctime)s %(levelname)-8s %(message)s"
# Version 2 - this fails
logger = logging.getLogger(name = "foobar")
log_format = "[%(name)s] %(asctime)s %(levelname)-8s %(message)s"
date_format = "%a, %d %b %Y %H:%M:%S %Z"
log_stream = sys.stdout
if logger.handlers:
for handler in logger.handlers:
logger.removeHandler(handler)
logging.basicConfig(level = logging.INFO, format = log_format, stream =
log_stream, datefmt = date_format)
logger.info("This is a test.")
Обратите внимание, что я ' Удаление обработчиков на основе этой записи.
Если я создаю экземпляр регистратора, используя версию 1 кода, он запускается успешно, и я могу просматривать журналы, а также запрашивать их в CloudWatch
.
Если я запускаю Версию 2, присваивая логгеру имя, задание Glue по-прежнему выполняется успешно. Однако, если я пытаюсь просмотреть журналы, я получаю следующее сообщение об ошибке:
Log stream not found
The log stream jr_f137743545d3d242618ac95d859b9146fd15d15a0aadce64d8f3ba991ffed012 could not be found. Check if it was correctly created and retry.
И я также не могу запросить эти журналы в CloudWatch
.
Я пытался локальный запуск этого кода с использованием python версия 3.6.0
, и обе версии работают. Кроме того, обе версии этого кода регистрации работают внутри лямбда-функции. Они терпят неудачу только в Клее.