gpt4 book ai didi

Python Flask 奇怪的日志记录行为(kubernetes)

转载 作者:行者123 更新时间:2023-12-02 12:00:42 25 4
gpt4 key购买 nike

因此,我制作了一个非常简单的基于 flask 的应用程序并将其托管在 kubernetes pod 中。
当我在 Rancher 中打开日志时,可以看到以下警告:

 * Serving Flask app "app/preapproved_limits/api.py"
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off

当我在本地机器上启动 flask 时,我也看到了这一点。
但是我 没看到在我的本地机器上和 看看在 Rancher 中是这样的:
10.0.67.20 - - [02/Jul/2020 16:49:20] "GET /health HTTP/1.1" 200 -
INFO:werkzeug:10.0.67.20 - - [02/Jul/2020 16:49:20] "GET /health HTTP/1.1" 200 -
每 5 秒记录一次。
有没有搞错?
但最重要和最烦人的是我看不到我用 Python 的 print() 创建的日志。功能。
有人可以解释一下:
  • 为什么我在 Rancher 和本地都看到了一些东西(最初的 Flask 警告),但是
  • 为什么我只在 Rancher 中看到一些东西(/healthINFO:werkzeug 日志)
  • 为什么我只能在我的机器上本地看到一些东西,而在 Rancher (print()) 中看不到
  • 最佳答案

    /health是 k8s 需要的一个正常的健康检查端点。
    默认情况下,Flask 不会打印到标准输出,因为它会缓冲行以提高 I/O 效率。您可以调用sys.stdout.flush() , print(flush=True) , 设置环境变量 PYTHONUNBUFFERED=1在您的 Dockerfile 中(可能是最简单的)或只使用 logging我们都应该的模块。
    您可以阅读有关此环境变量 here 的更多信息.

    关于Python Flask 奇怪的日志记录行为(kubernetes),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62701373/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com