【发布时间】:2013-10-04 04:35:04
【问题描述】:
我想在生产pyramid web 项目中临时打开调试消息,所以我调整了production.ini 文件,将其推送到Heroku,只看到错误和警告级别的消息。
所以我想,这似乎很奇怪,因为如果我在本地 PC 上启动如下所示的金字塔应用程序,我会收到所有日志级别的消息。
env/bin/pserve production.ini
好的,这并不是它在 Heroku 上的运行方式,它实际上是从一个看起来像这样的 little bit of 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
【问题讨论】: