我目前正在使用WSGI开发Web服务,但是脚本在执行查询的那一行崩溃。我使用的代码与其他可用的Web服务完全相同,甚至简化了查询以进行测试,但无济于事。 真正的问题是,尽管我可以手动将内容打印到VirtualHost中指定的error_log中,但没有脚本崩溃时发生的错误的日志。 我现在所知道的是,将行之前的打印内容写入日志,但不打印之后的内容。如何将错误打印到日志中并找到问题的根源?
代码(简化一点):
webservice.wsgi:
def application(environ, start_response):
ENV = environ.get('APPLICATION_ENV', 'DEV')
connector = ConnectorObj(confParams['dbname'], confParams['host'], confParams['port'], confParams['user'], confParams['password'])
method = environ.get('REQUEST_METHOD', '')
if (method == 'POST'):
content_body = json.loads(request_body)
han = HandlerObj(connector)
res = han.getBld()
start_response('200 OK', [('content-type', 'application/json; charset=utf-8'), ('Access-Control-Allow-Origin', '*')])
return(res)
getBld:
def getBld(self):
print "execute query"
self.cur.execute("""
SELECT * FROM adr.bld
""")
print "after executing query"
在执行post调用后,我可以看到“执行查询”被打印到error_log上,但是它只是崩溃了,并没有到达“执行查询后”。
同样,我不是在问我的实际代码出了什么问题(我必须提供更多信息才能理解它),而是简单地以某种方式获取错误跟踪,以便开始调试我自己。
答案 0 :(得分:0)
这取决于您使用的数据库。如果它是开源的,我建议您采用源代码并使用启用的调试模式进行编译,这将导致DB为其自身创建日志文件,该日志文件可能指向错误。