summaryrefslogtreecommitdiffstats
path: root/nova/wsgi.py
diff options
context:
space:
mode:
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 e940b3f8c..a147bda7f 100644
--- a/nova/wsgi.py
+++ b/nova/wsgi.py
@@ -21,7 +21,6 @@
Utility methods for working with WSGI servers
"""
-import logging
import sys
from xml.dom import minidom
@@ -34,19 +33,31 @@ import webob
import webob.dec
import webob.exc
+from nova import log as logging
from nova import utils
-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):