exh*_*uma 40 python apache mod-wsgi sqlalchemy flask
我目前正在开发一个基于的应用程序flask
.它运行良好,可以手动生成服务器app.run()
.我已经尝试过mod_wsgi
了.奇怪的是,我得到500错误,日志中没有任何内容.我调查了一下,这是我的发现.
print >>sys.stderr, "hello"
预期的那样插入一行.该消息显示在错误日志中.我的直觉告诉我,SQLAlchemy会发出错误,也许某些日志配置会导致日志在应用程序的某个时刻被丢弃.
另外,为了测试,我使用的是SQLite.据我所知,这只能从一个线程访问.因此,如果mod_wsgi
生成更多线程,它可能会破坏应用程序.
我有点不知所措,因为它只会打破后面的运行mod_wsgi
,这似乎也吞噬了我的错误.我该怎么做才能使错误冒泡到apache error_log中?
作为参考,代码可以在这个github永久链接上看到.
exh*_*uma 54
原来我并没有完全错.sqlalchemy确实抛出了这个例外.因为它stdout
默认流式传输,mod_wsgi
默默地忽略它(据我所知).
回答我的主要问题:如何查看WSGI应用程序产生的错误?
它实际上非常简单.将日志重定向到stderr
.您需要做的唯一事情是将以下内容添加到WSGI脚本中:
import logging, sys
logging.basicConfig(stream=sys.stderr)
Run Code Online (Sandbox Code Playgroud)
现在,这是最普通的日志配置.因为我还没有为我的应用程序做任何事情,所以这样做.但是,我想,一旦应用程序成熟,你将拥有更复杂的日志配置,所以这不会咬你.
但是对于快速和脏的调试,这样做会很好.
归档时间: |
|
查看次数: |
14817 次 |
最近记录: |