[Repoze-checkins] r1084 - repoze.debug/trunk/repoze/debug
Chris McDonough
chrism at agendaless.com
Fri Jun 13 18:59:13 EDT 2008
Author: Chris McDonough <chrism at agendaless.com>
Date: Fri Jun 13 18:59:13 2008
New Revision: 1084
Log:
Add max_bodylen.
Modified:
repoze.debug/trunk/repoze/debug/responselogger.py
repoze.debug/trunk/repoze/debug/tests.py
Modified: repoze.debug/trunk/repoze/debug/responselogger.py
==============================================================================
--- repoze.debug/trunk/repoze/debug/responselogger.py (original)
+++ repoze.debug/trunk/repoze/debug/responselogger.py Fri Jun 13 18:59:13 2008
@@ -5,8 +5,9 @@
from paste.exceptions.errormiddleware import Supplement
class ResponseLoggingMiddleware:
- def __init__(self, app, logger):
+ def __init__(self, app, max_bodylen, logger):
self.application = app
+ self.max_bodylen = max_bodylen
self.logger = logger
def __call__(self, environ, start_response):
@@ -85,7 +86,12 @@
out.append('Bodylen: %s' % len(body))
out.append('Body:')
out.append('')
- out.append(body)
+ bodyout = body
+ if self.max_bodylen:
+ bodyout = body[:self.max_bodylen]
+ if len(body) > self.max_bodylen:
+ bodyout += ' ... (truncated)'
+ out.append(bodyout)
out.append('--- end RESPONSE %s ---' % request_id)
self.logger.info('\n'.join(out))
@@ -118,18 +124,20 @@
def make_middleware(app,
global_conf,
filename,
- max_bytes='100MB',
+ max_bodylen='0KB', # all
+ max_logsize='100MB',
backup_count='10',
):
""" Paste filter-app converter """
backup_count = int(backup_count)
- max_bytes = byte_size(max_bytes)
+ max_bytes = byte_size(max_logsize)
+ max_bodylen = byte_size(max_bodylen)
from logging import Logger
from logging.handlers import RotatingFileHandler
- handler = RotatingFileHandler(filename, maxBytes=max_bytes,
+ handler = RotatingFileHandler(filename, maxBytes=max_logsize,
backupCount=backup_count)
logger = Logger('repoze.debug.responselogger')
logger.handlers = [handler]
- return ResponseLoggingMiddleware(app, logger)
+ return ResponseLoggingMiddleware(app, max_bodylen, logger)
Modified: repoze.debug/trunk/repoze/debug/tests.py
==============================================================================
--- repoze.debug/trunk/repoze/debug/tests.py (original)
+++ repoze.debug/trunk/repoze/debug/tests.py Fri Jun 13 18:59:13 2008
@@ -25,7 +25,7 @@
body = ['thebody']
app = DummyApp(body, '200 OK', [('HeaderKey', 'headervalue')])
logger = FakeLogger()
- mw = self._makeOne(app, logger)
+ mw = self._makeOne(app, 0, logger)
environ = self._makeEnviron()
start_response = FakeStartResponse()
app_iter = mw(environ, start_response)
@@ -37,6 +37,18 @@
self.assertEqual(start_response.exc_info, None)
self.assertEqual(app.called, True)
+ def test_call_overmaxbodylen(self):
+ body = ['thebody']
+ app = DummyApp(body, '200 OK', [('HeaderKey', 'headervalue')])
+ logger = FakeLogger()
+ mw = self._makeOne(app, 1, logger)
+ environ = self._makeEnviron()
+ start_response = FakeStartResponse()
+ app_iter = mw(environ, start_response)
+ self.assertEqual(''.join(app_iter), 'thebody')
+ self.assertEqual(len(logger.logged), 2)
+ self.failUnless('(truncated)' in logger.logged[1])
+
class TestMakeMiddleware(unittest.TestCase):
def _getFUT(self):
from repoze.debug.responselogger import make_middleware
@@ -50,6 +62,7 @@
fn = tempfile.mktemp()
mw = f(app, global_conf, fn)
self.assertEqual(len(mw.logger.handlers), 1)
+ self.assertEqual(mw.max_bodylen, 0)
def test_make_middleware_nondefaults(self):
f = self._getFUT()
More information about the Repoze-checkins
mailing list