diff --git a/novaclient/client.py b/novaclient/client.py
index c711fc468..49a52e141 100644
--- a/novaclient/client.py
+++ b/novaclient/client.py
@@ -7,6 +7,8 @@ import time
 import urlparse
 import urllib
 import httplib2
+import logging
+
 try:
     import json
 except ImportError:
@@ -20,6 +22,7 @@ if not hasattr(urlparse, 'parse_qsl'):
 import novaclient
 from novaclient import exceptions
 
+_logger = logging.getLogger(__name__)
 
 class OpenStackClient(httplib2.Http):
 
@@ -37,6 +40,20 @@ class OpenStackClient(httplib2.Http):
         # httplib2 overrides
         self.force_exception_to_status_code = True
 
+    def http_log(self, args, kwargs, resp, body):
+        string = 'curl -i'
+        for element in args:
+            if element in ('GET','POST'):
+                string += ' -X ' + element
+            else:
+                string += ' ' + element
+
+        for element in kwargs['headers']:
+            string += ' -H "' + element + ': ' + kwargs['headers'][element] + '"'
+            
+        _logger.debug("REQ: %s\n", string)
+        _logger.debug("RESP:%s %s\n", resp,body)
+
     def request(self, *args, **kwargs):
         kwargs.setdefault('headers', {})
         kwargs['headers']['User-Agent'] = self.USER_AGENT
@@ -44,12 +61,10 @@ class OpenStackClient(httplib2.Http):
             kwargs['headers']['Content-Type'] = 'application/json'
             kwargs['body'] = json.dumps(kwargs['body'])
 
-        if httplib2.debuglevel == 1:
-            print "ARGS:", args
         resp, body = super(OpenStackClient, self).request(*args, **kwargs)
-        if httplib2.debuglevel == 1:
-            print "RESPONSE", resp
-            print "BODY", body
+
+        self.http_log(args, kwargs, resp, body)
+        
         if body:
             try:
                 body = json.loads(body)