簡體   English   中英

Python:WSGI崩潰而沒有錯誤

[英]Python: WSGI crashing with no error

我目前正在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上,但是它只是崩潰了,並沒有進入“執行查詢后”。

再次,我不是在問實際代碼有什么問題(我必須提供更多信息才能理解它),而只是簡單地知道如何以某種方式獲取錯誤跟蹤,以便自己開始調試它。 。

這取決於您使用的數據庫。 如果它是開放源代碼,我建議采用源代碼並使用啟用的調試模式進行編譯,這將導致DB為其自身創建日志文件,該日志文件可能指向錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM