X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst.pm;h=13b975f00c0d60b4f74e623ed20bbe31fc5cfa75;hb=14a1ceeffe74d8c24dc270238f4069915270a6e5;hp=3a43f544b947500d63df94d0033432dabd5e59ee;hpb=13311c16a8aebc88a393baed64f3344e4c9a4229;p=catagits%2FCatalyst-Runtime.git
diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm
index 3a43f54..13b975f 100644
--- a/lib/Catalyst.pm
+++ b/lib/Catalyst.pm
@@ -78,7 +78,7 @@ __PACKAGE__->stats_class('Catalyst::Stats');
# Remember to update this in Catalyst::Runtime as well!
-our $VERSION = '5.80021';
+our $VERSION = '5.80022';
our $PRETTY_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -1516,7 +1516,7 @@ sub welcome_message {
models, and
views;
they can save you a lot of work.
- script/${prefix}_create.pl -help
+ script/${prefix}_create.pl --help
Also, be sure to check out the vast and growing
collection of plugins for Catalyst on CPAN;
you are likely to find what you need there.
@@ -2108,8 +2108,6 @@ Writes information about the request to the debug logs. This includes:
=item * Request method, path, and remote IP address
-=item * Request headers (see L)
-
=item * Query keywords (see L)
=item * Request parameters
@@ -2134,7 +2132,7 @@ sub log_request {
$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");
@@ -2147,35 +2145,60 @@ sub log_request {
=head2 $c->log_response
-Writes information about the response to the debug logs. This includes:
+Writes information about the response to the debug logs by calling
+C<< $c->log_response_status_line >> and C<< $c->log_response_headers >>.
+
+=cut
+
+sub log_response {
+ my $c = shift;
+
+ return unless $c->debug;
+
+ my($dump) = grep {$_->[0] eq 'Response' } $c->dump_these;
+ my $response = $dump->[1];
+
+ $c->log_response_status_line($response);
+ $c->log_response_headers($response->headers);
+}
+
+=head2 $c->log_response_status_line($response)
+
+Writes one line of information about the response to the debug logs. This includes:
=over 4
=item * Response status code
-=item * Response headers (see L)
+=item * Content-Type header (if present)
+
+=item * Content-Length header (if present)
=back
=cut
-sub log_response {
- my $c = shift;
+sub log_response_status_line {
+ my ($c, $response) = @_;
- return unless $c->debug;
+ $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'
+ )
+ );
+}
- my($dump) = grep {$_->[0] eq 'Response' } $c->dump_these;
- my $response = $dump->[1];
+=head2 $c->log_response_headers($headers);
- $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'
- )
- );
-}
+Hook method which can be wrapped by plugins to log the responseheaders.
+No-op in the default implementation.
+
+=cut
+
+sub log_response_headers {}
=head2 $c->log_request_parameters( query => {}, body => {} )
@@ -2233,6 +2256,15 @@ sub log_request_uploads {
}
}
+=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 (either request or response) to the debug logs.
@@ -2246,7 +2278,8 @@ sub log_headers {
return unless $c->debug;
- my $t = Text::SimpleTable->new( [ 35, 'Header Name' ], [ 40, 'Value' ] );
+ my $column_width = Catalyst::Utils::term_width() - 28;
+ my $t = Text::SimpleTable->new( [ 15, 'Header Name' ], [ $column_width, 'Value' ] );
$headers->scan(
sub {
my ( $name, $value ) = @_;