SYNOPSIS

    use LWP::UserAgent::Patch::LogResponse
        -log_response_header  => 1, # default 1
        -log_response_body    => 1, # default 0
        -decode_response_body => 1, # default 1, turn off, e.g. to get raw gzipped content
    ;

    # now all your LWP HTTP responses are logged

   Sample script and output:

    % TRACE=1 perl -MLog::ger::Output::Screen -MLWP::UserAgent::Patch::LogResponse \
      -MLWP::Simple -e'get "http://localhost:5000/"'
    [261] HTTP response header:
    200 OK
    Date: Mon, 20 Aug 2012 07:47:46 GMT
    Server: HTTP::Server::PSGI
    Content-Length: 13
    Content-Type: text/plain
    Client-Date: Mon, 20 Aug 2012 07:47:46 GMT
    Client-Peer: 127.0.0.1:5000
    Client-Response-Num: 1

DESCRIPTION

   This module patches LWP::UserAgent (which is used by LWP::Simple,
   WWW::Mechanize, among others) so that HTTP responses are logged using
   Log::ger.

   Response body is logged in category LWP_Response_Body.* so it can be
   separated. For example, to dump response body dumps to directory
   instead of file:

    use Log::ger::Output Composite => (
        category_level => {LWP_Response_Body => 'off'},
        outputs        => {
            Dir => {
                conf  => { path => "/path/to/dir" },
                level => 'off',
                category_level => {LWP_Response_Body => 'trace'},
            },
        }
    );

FAQ

Why not subclass?

   By patching, you do not need to replace all the client code which uses
   LWP (or WWW::Mechanize, etc).

SEE ALSO

   Use Net::HTTP::Methods::Patch::LogRequest to log raw HTTP requests
   being sent to servers.