[英]Missing Logs in AWS Glue Python
我继承了我正在尝试登录 Glue 的 python 脚本。 最初它有打印,但仅在作业完成后才发送,但无法在运行时查看执行状态。
我已将日志系统更改为 cloudwatch 系统,但显然它不会像 Spark 系统那样以流式传输方式发送日志,根据this 。
我决定遵循他们的建议并为此目的使用了望塔,我有这样的代码:
def initialize_log() -> logging.Logger:
logger = logging.getLogger(__name__)
log_format = "[%(name)s] %(asctime)s %(levelname)-8s %(message)s"
date_format = "%a, %d %b %Y %H:%M:%S %Z"
log_stream = sys.stdout
logging.basicConfig(level=logging.INFO, format=log_format, stream=log_stream, datefmt=date_format)
logger.addHandler(watchtower.CloudWatchLogHandler(log_group='/aws-glue/python-job', stream_name='my_stream_name'))
return logger
def log(logger, message):
logger.info(message)
logger.info(dict(foo="bar", details={}))
但是,当我这样做时:
logger = initialize_log()
log(logger, "Message")
我在 Cloudwatch /aws-glue/python-job
或任何目录中的消息中找不到此消息。
我想问你是否知道我可能做错了什么。
先感谢您
使用日志库解决:
import logging
def initialize_log() -> logging.Logger:
logger = logging.getLogger()
logger.setLevel(logging.INFO)
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
return logger
def log(message: str):
logger.info(message)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.