Python:WSGI崩溃,没有错误
我目前正在WSGI中开发一个web服务,但是脚本在执行查询时崩溃。我使用与其他工作web服务完全相同的代码,甚至出于测试目的简化了查询,但都没有用。 真正的问题是,虽然我可以手动将内容打印到VirtualHost中指定的错误日志中,但没有脚本崩溃时发生的错误日志。 我现在所知道的是,行前的打印会写入日志,但行后的打印不会写入日志。如何将错误打印到日志中并找到问题的根源 代码(简化了一点): webservice.wsgi:Python:WSGI崩溃,没有错误,python,error-handling,wsgi,Python,Error Handling,Wsgi,我目前正在WSGI中开发一个web服务,但是脚本在执行查询时崩溃。我使用与其他工作web服务完全相同的代码,甚至出于测试目的简化了查询,但都没有用。 真正的问题是,虽然我可以手动将内容打印到VirtualHost中指定的错误日志中,但没有脚本崩溃时发生的错误日志。 我现在所知道的是,行前的打印会写入日志,但行后的打印不会写入日志。如何将错误打印到日志中并找到问题的根源 代码(简化了一点): webservice.wsgi: def application(environ, start_respo
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调用之后,我可以看到“执行查询”被打印到错误日志中,但是它只是崩溃了,没有到达“执行查询之后”
同样,我不是问我的实际代码有什么问题(为了理解它,我必须提供更多),而是问我如何以某种方式获得错误跟踪,以便我自己开始调试它。这取决于您使用的数据库。如果是开源代码,我建议使用启用的调试模式编译源代码,这将导致DB为自己创建日志文件,这可能会指向错误。我使用的是PostrGreSQL。主要问题不仅仅是这个数据库调用。每当出现任何问题并且脚本崩溃时,无论原因如何,都不会记录任何错误。我唯一能做的就是尝试编写调用wsgi文件中相同逻辑的本地测试脚本,并尝试以这种方式对其进行调试。运行查询或将结果返回给DB处理程序时出错。还要尝试用insert替换查询,并检查结果是否被插入。如果是,那么您可能对返回结果有问题。可能是DB字符串中的一些特殊符号。