Metadata-Version: 1.0
Name: repoze.debug
Version: 0.2
Summary: Forensic debugging WSGI middleware
Home-page: http://www.repoze.org
Author: Agendaless Consulting
Author-email: repoze-dev@lists.repoze.org
License: BSD-derived (http://www.repoze.org/LICENSE.txt)
Description: repoze.debug README
        ===================
        
        Middleware which can help with in-production forensic debugging.
        Currently the only middleware in this package is the responselogger
        middleware, which logs requests and responses to a file for later
        perusal.
        
        Installation
        ------------
        
        Install using setuptools, e.g. (within a virtualenv)::
        
        $ easy_install repoze.debug
        
        
        Configuration via Python
        ------------------------
        
        Wire up the middleware in your application::
        
        from repoze.debug.responselogger import ResponseLoggingMiddleware
        from logging import getLogger
        middleware = ResponseLoggingMiddleware(
        app,
        max_bodylen='3KB',
        logger=getLogger('foo')
        )
        
        The configuration options are as follows::
        
        - ``max_bodylen`` should be the size in bytes (optionally followed by
        KB, MB, or GB) of the response body that should be logged.
        
        - ``logger`` is a PEP 282 logger instance (any).
        
        Configuration via Paste
        -----------------------
        
        Wire the middleware into a pipeline in your Paste configuration, for
        example::
        
        [filter:responselogger]
        use = egg:repoze.debug#responselogger
        filename = %(here)s/response.log
        # if max_bodylen is unset or is 0, it means do not limit body logging
        # default is 0
        max_bodylen = 3KB
        # if max_logsize is unset or is 0, it means do not limit logsize; default is
        # 100MB
        max_logsize = 100MB
        # if backup_count is 0, do not rotate the logfile.  Default is 10.
        backup_count = 10
        
        ...
        
        [pipeline:main]
        pipeline = egg:Paste#cgitb
        responselogger
        myapp
        
        The middleware will log response data to ``filename``.
        
        Operation
        ---------
        
        Once the middleware is in the pipeline, it will log requests and
        responses to the logger.  An example of the log output for a request
        follows::
        
        --- REQUEST 860724193 at Fri Jun 13 18:40:47 2008 ---
        URL: http://localhost:9971/p_/pl
        CGI Variables
        ACTUAL_SERVER_PROTOCOL: HTTP/1.1
        AUTH_TYPE: Basic
        HTTP_ACCEPT: */*
        HTTP_ACCEPT_ENCODING: gzip, deflate
        HTTP_ACCEPT_LANGUAGE: en-us
        HTTP_CONNECTION: keep-alive
        HTTP_HOST: localhost:9971
        HTTP_REFERER: http://localhost:9971/manage_menu
        HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_2; en-us) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.1 Safari/525.18
        PATH_INFO: /p_/pl
        REMOTE_ADDR: 127.0.0.1
        REMOTE_PORT: 51422
        REQUEST_METHOD: GET
        SERVER_NAME: vitaminf-2.local
        SERVER_PORT: 9971
        SERVER_PROTOCOL: HTTP/1.1
        SERVER_SOFTWARE: CherryPy/3.0.2 WSGI Server
        WSGI Variables
        repoze.debug.request_begin: 1213396847.41
        wsgi process: Multithreaded
        repoze.debug.id: 860724193
        application: <paste.httpexceptions.HTTPExceptionHandler object at 0x17a8fd0>
        --- end REQUEST 860724193 ---
        
        Each request is tagged with a (random) identifier.  A response is also
        written to the log, and can be matched up to the request that
        generated it via the identifier.  Here's an example of a response in
        the log::
        
        --- RESPONSE 860724193 at Fri Jun 13 18:40:47 2008 (0.0083 seconds) ---
        Status: 200 OK
        Response Headers
        Cache-Control: public,max-age=60
        Content-Length: 872
        Content-Type: image/gif
        Last-Modified: Thu, 06 Mar 2008 17:25:30 GMT
        Bodylen: 872
        Body:
        
        1?9p?:'~?? ?0a???q?J?(I?|;@@???????@?????!?,H? ?H?`?2t???K.LH?`D?
        --- end RESPONSE 860724193 ---
        
        Reporting Bugs / Development Versions
        -------------------------------------
        
        Visit http://bugs.repoze.org to report bugs.  Visit
        http://svn.repoze.org to download development or tagged versions.
        
        
        0.2 (2008/06/14)
        
        - Add warning if content-length != body length.
        
        0.1 (2008/06/13)
        
        - Initial release.
        
        
Keywords: wsgi request response debug middleware
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware
