我有几个容器作为 Spark 集群运行。 当我提交 Python 应用程序时,我确保日志记录由日志记录模块管理。 但是,我在容器 stdout/stderr 上看不到任何日志。 这应该如何配置?
这就是我配置 python 记录器的方式:
logger = logging.getLogger(app_name)
logger.setLevel(logging.DEBUG) # set logger level
logFormatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
consoleHandler = logging.StreamHandler() #set streamhandler to stdout
consoleHandler.setFormatter(logFormatter)
logger.addHandler(consoleHandler)
有人遇到过同样的情况吗?如何克服?
谢谢你
看起来您正在将日志发送到控制台,而您在输入
docker logs
时看到的日志是系统日志(就像您在终端中输入 journalctl
时看到的日志一样)。
您基本上需要更改您的处理程序才能将它们发送到那里。
这个配置应该做:
logger = logging.getLogger("app_name")
logger.setLevel(logging.DEBUG)
handler = logging.handlers.SysLogHandler(address = '/dev/log')
logger.addHandler(handler)