我继承了一个python脚本,我正在尝试登录Glue。最初它有打印,但它们只发送一次作业完成,但它是不可能看到执行的状态在运行时。
据this称,我已经将日志系统更改为cloudwatch,但显然它并不像Spark那样以流式方式发送日志。
我决定遵循they的建议,并为此使用了望塔,我有这样的代码:
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或任何目录中找到这条消息。
我想问你是否知道我做错了什么。
提前谢谢你
发布于 2022-06-13 09:20:18
使用日志库解决:
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)https://stackoverflow.com/questions/72574136
复制相似问题