Python 记录器未显示在 Docker 容器日志中

问题描述 投票:0回答:1

我有几个容器作为 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)

有人遇到过同样的情况吗?如何克服?

谢谢你

python docker logging docker-for-windows
1个回答
0
投票

看起来您正在将日志发送到控制台,而您在输入

docker logs
时看到的日志是系统日志(就像您在终端中输入
journalctl
时看到的日志一样)。

您基本上需要更改您的处理程序才能将它们发送到那里。

这个配置应该做:

logger = logging.getLogger("app_name")
logger.setLevel(logging.DEBUG)
handler = logging.handlers.SysLogHandler(address = '/dev/log')
logger.addHandler(handler)
© www.soinside.com 2019 - 2024. All rights reserved.