mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
handle application errors
This commit is contained in:
parent
04bb2c3a51
commit
e699a50952
@ -4,7 +4,7 @@
|
||||
# The %(here)s variable will be replaced with the parent directory of this file
|
||||
#
|
||||
[DEFAULT]
|
||||
debug = false
|
||||
debug = true
|
||||
# Uncomment and replace with the address which should receive any error reports
|
||||
#email_to = you@yourdomain.com
|
||||
smtp_server = localhost
|
||||
|
||||
@ -18,7 +18,7 @@ class HttpResponse(object):
|
||||
def send(self):
|
||||
# send headers
|
||||
resp_head = []
|
||||
resp_head.append("HTTP/1.1 %s\r\n" % (self.status))
|
||||
resp_head.append("HTTP/1.0 %s\r\n" % (self.status))
|
||||
|
||||
resp_head.append("Server: %s\r\n" % self.SERVER_VERSION)
|
||||
resp_head.append("Date: %s\r\n" % http_date())
|
||||
|
||||
@ -61,7 +61,10 @@ def write(sock, data):
|
||||
raise
|
||||
i += 1
|
||||
|
||||
|
||||
def writelines(sock, lines):
|
||||
for line in list(lines):
|
||||
write(sock, line)
|
||||
|
||||
def normalize_name(name):
|
||||
return "-".join([w.lower().capitalize() for w in name.split("-")])
|
||||
|
||||
|
||||
@ -12,6 +12,7 @@ import signal
|
||||
import socket
|
||||
import sys
|
||||
import tempfile
|
||||
import traceback
|
||||
|
||||
from gunicorn import http
|
||||
from gunicorn import util
|
||||
@ -115,7 +116,19 @@ class Worker(object):
|
||||
util.close_on_exec(client)
|
||||
try:
|
||||
req = http.HttpRequest(client, addr, self.address)
|
||||
response = self.app(req.read(), req.start_response)
|
||||
try:
|
||||
response = self.app(req.read(), req.start_response)
|
||||
except Exception, e:
|
||||
exc = ''.join(traceback.format_exception(*sys.exc_info()))
|
||||
msg = "<h1>Internal Server Error</h1><h2>wsgi error:</h2><pre>%s</pre>" % exc
|
||||
util.writelines(client,
|
||||
["HTTP/1.0 500 Internal Server Error\r\n",
|
||||
"Connection: close\r\n",
|
||||
"Content-type: text/html\r\n",
|
||||
"Content-length: %s\r\n" % str(len(msg)),
|
||||
"\r\n",
|
||||
msg])
|
||||
return
|
||||
http.HttpResponse(client, response, req).send()
|
||||
except Exception, e:
|
||||
self.log.exception("Error processing request. [%s]" % str(e))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user