summaryrefslogtreecommitdiffstats
path: root/nova/wsgi.py
diff options
context:
space:
mode:
authorTodd Willey <todd@ansolabs.com>2011-01-12 14:31:28 -0500
committerTodd Willey <todd@ansolabs.com>2011-01-12 14:31:28 -0500
commit18a83d92d10bb84eddec786c7327153983c97d57 (patch)
tree6af497d217922f9f7e51aab21769b4713bb42ad7 /nova/wsgi.py
parentf45133f00d3d0a3d52cb9070627063b93af19e78 (diff)
parent03c9f498e6b972e001ec67e6d57c309960b7f9f0 (diff)
downloadnova-18a83d92d10bb84eddec786c7327153983c97d57.tar.gz
nova-18a83d92d10bb84eddec786c7327153983c97d57.tar.xz
nova-18a83d92d10bb84eddec786c7327153983c97d57.zip
Merge trunk.
Diffstat (limited to 'nova/wsgi.py')
-rw-r--r--nova/wsgi.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/nova/wsgi.py b/nova/wsgi.py
index aa8f315d6..ae936d4c0 100644
--- a/nova/wsgi.py
+++ b/nova/wsgi.py
@@ -22,7 +22,6 @@ Utility methods for working with WSGI servers
"""
import json
-import logging
import sys
from xml.dom import minidom
@@ -35,18 +34,30 @@ import webob
import webob.dec
import webob.exc
+from nova import log as logging
-logging.getLogger("routes.middleware").addHandler(logging.StreamHandler())
+
+class WritableLogger(object):
+ """A thin wrapper that responds to `write` and logs."""
+
+ def __init__(self, logger, level=logging.DEBUG):
+ self.logger = logger
+ self.level = level
+
+ def write(self, msg):
+ self.logger.log(self.level, msg)
class Server(object):
"""Server class to manage multiple WSGI sockets and applications."""
def __init__(self, threads=1000):
+ logging.basicConfig()
self.pool = eventlet.GreenPool(threads)
def start(self, application, port, host='0.0.0.0', backlog=128):
"""Run a WSGI server with the given application."""
+ logging.audit(_("Starting %s on %s:%s"), sys.argv[0], host, port)
socket = eventlet.listen((host, port), backlog=backlog)
self.pool.spawn_n(self._run, application, socket)
@@ -59,7 +70,9 @@ class Server(object):
def _run(self, application, socket):
"""Start a WSGI server in a new green thread."""
- eventlet.wsgi.server(socket, application, custom_pool=self.pool)
+ logger = logging.getLogger('eventlet.wsgi.server')
+ eventlet.wsgi.server(socket, application, custom_pool=self.pool,
+ log=WritableLogger(logger))
class Application(object):