我想在生产金字塔Web 项目中临时打开调试消息,所以我调整了production.ini
文件,将其推送到Heroku,只看到错误和警告级别的消息。
所以我想,这似乎很奇怪,因为如果我在本地 PC 上像下面这样启动金字塔应用程序,我会收到所有日志级别的消息。
env/bin/pserve production.ini
好的,所以这并不是它在 Heroku 上的运行方式,它实际上是从一些看起来像这样的 python运行的(在一个名为 的文件中runapp.py
):
import os
from paste.deploy import loadapp
from waitress import serve
if __name__ == "__main__":
port = int(os.environ.get("PORT", 5000))
app = loadapp('config:production.ini', relative_to='.')
serve(app, host='0.0.0.0', port=port)
现在,可以肯定的是,如果我在本地 PC 上执行此操作,我会得到与部署到 Heroku 时相同的行为(不足为奇)。
python runapp.py
我的问题是,我在这里缺少什么?为什么以第二种方式运行它会导致除 ERROR 和 WARN 之外的日志消息不会输出到标准输出?当然,既然它使用的是同一个production.ini
文件,它应该像我使用这个pserve
过程一样工作吗?
这是我的日志记录部分production.ini
:
###
# logging configuration
# http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/logging.html
###
[loggers]
keys = root, test
[handlers]
keys = console
[formatters]
keys = generic
[logger_root]
level = DEBUG
handlers = console
[logger_test]
level = DEBUG
handlers = console
qualname = test
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = DEBUG
formatter = generic
[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s