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

Xar*_*Xar 6 python error-logging heroku flask 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)
Run Code Online (Sandbox Code Playgroud)

知道如何在运行Flask时能够读取de错误消息foreman start吗?

Gor*_*hen 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
Run Code Online (Sandbox Code Playgroud)

web: gunicorn --log-file=- app:app
Run Code Online (Sandbox Code Playgroud)

为我解决了这个问题.


Mig*_*uel 1

Heroku 和 Foreman 希望您的日志保存到stdoutstderr,而不是保存到文件。请参阅Heroku 文档中的日志记录

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