webgui/lib/Plack/Middleware/Debug/WgLogger.pm
2010-04-13 21:00:08 -04:00

31 lines
No EOL
804 B
Perl

package Plack::Middleware::Debug::WgLogger;
use strict;
use parent qw(Plack::Middleware::Debug::Base);
our $VERSION = '0.07';
# This will be moved to the WebGUI::Middleware::Debug::WgLogger namespace
# once Plack::Middleware::Debug supports that
sub run {
my ($self, $env, $panel) = @_;
my $logger = $env->{'psgix.logger'};
my $log_output = [];
$env->{'psgix.logger'} = sub {
my $args = shift;
push @$log_output, $args->{level} => $args->{message};
$logger && $logger->($args);
};
delete $env->{'webgui.session'}->{_errorHandler};
return sub {
my $res = shift;
$panel->nav_subtitle(scalar @$log_output . " messages");
$panel->content($self->render_list_pairs($log_output));
};
}
sub panel_name { 'WebGUI Log' }
1;