【问题标题】:How to log error messages with Flask and foreman (heroku)?如何使用 Flask 和工头(heroku)记录错误消息?
【发布时间】:2013-10-20 16:56:33
【问题描述】:

我正在与 Flask 和 Foreman 一起为 Heroku 托管服务。我启动本地服务器输入foreman start。我的问题是我想查看我的代码生成的日志错误消息,但我没有找到正确的方法。

我尝试使用我在 Flask 文档中找到的一些类似这样的代码,但它也不起作用:

import logging
from FileHandler import FileHandler
file_handler = FileHandler("log.txt")
file_handler.setLevel(logging.WARNING)
app.logger.addHandler(file_handler)

知道如何在使用foreman start 运行 Flask 时读取错误消息吗?

【问题讨论】:

    标签: python heroku flask error-logging foreman


    【解决方案1】:

    Heroku 和 Foreman 期望您的日志转到 stdoutstderr,而不是文件。见the Heroku documentation on logging

    对于 Python 应用,您可以使用 logging.StreamHandler 类,默认情况下记录到 stderr

    【讨论】:

      【解决方案2】:

      我遇到了类似的问题 - 最后问题不在于 Foreman,而在于使用了较新版本的 Gunicorn,默认情况下禁用控制台日志记录 (http://gunicorn-docs.readthedocs.org/en/latest/faq.html#why-i-don-t-see-any-logs-in-the-console)。

      从以下位置更改我的 procfile:

      web: gunicorn app:app
      

      web: gunicorn --log-file=- app:app
      

      为我解决了这个问题。

      【讨论】:

      • 我的上帝(或 GORD,我应该说?) - 我一直在寻找这个答案两天。谢谢。
      猜你喜欢
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 2010-12-14
      • 1970-01-01
      • 2012-09-19
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多