如何使用Flask和foreman(heroku)记录错误消息?

时间:2013-10-12 18:59:32

标签: python heroku flask error-logging foreman

我正在与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时能够读取错误消息吗?

2 个答案:

答案 0 :(得分:8)

我遇到了类似的问题 - 最后问题不在于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

为我解决了这个问题。

答案 1 :(得分:1)

Heroku和Foreman希望您的日志转到stdoutstderr,而不是文件。请参阅the Heroku documentation on logging

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