=item * Request method, path, and remote IP address
-=item * Request headers (see L</log_headers>)
-
=item * Query keywords (see L<Catalyst::Request/query_keywords>)
=item * Request parameters
$address ||= '';
$c->log->debug(qq/"$method" request for "$path" from "$address"/);
- $c->log_headers('request', $request->headers);
+ $c->log_request_headers($request->headers);
if ( my $keywords = $request->query_keywords ) {
$c->log->debug("Query keywords are: $keywords");
=item * Response status code
-=item * Response headers (see L</log_headers>)
+=item * Content-Type header (if present)
+
+=item * Content-Length header (if present)
=back
my($dump) = grep {$_->[0] eq 'Response' } $c->dump_these;
my $response = $dump->[1];
- $c->log->debug(
- sprintf(
- 'Response Code: %s; Content-Type: %s; Content-Length: %s',
- $response->status || 'unknown',
- $response->headers->header('Content-Type') || 'unknown',
- $response->headers->header('Content-Length') || 'unknown'
- )
- );
+ $c->log->debug(
+ sprintf(
+ 'Response Code: %s; Content-Type: %s; Content-Length: %s',
+ $response->status || 'unknown',
+ $response->headers->header('Content-Type') || 'unknown',
+ $response->headers->header('Content-Length') || 'unknown'
+ )
+ );
}
=head2 $c->log_request_parameters( query => {}, body => {} )
}
}
+=head2 $c->log_request_headers($headers);
+
+Hook method which can be wrapped by plugins to log the request headers.
+No-op in the default implementation.
+
+=cut
+
+sub log_request_headers {}
+
=head2 $c->log_headers($type => $headers)
Logs L<HTTP::Headers> (either request or response) to the debug logs.