summaryrefslogtreecommitdiff
path: root/lib/Net/HTTP/Spore/Middleware/LogDispatch.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Net/HTTP/Spore/Middleware/LogDispatch.pm')
-rw-r--r--lib/Net/HTTP/Spore/Middleware/LogDispatch.pm32
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/Net/HTTP/Spore/Middleware/LogDispatch.pm b/lib/Net/HTTP/Spore/Middleware/LogDispatch.pm
index 2724fcf..422c76d 100644
--- a/lib/Net/HTTP/Spore/Middleware/LogDispatch.pm
+++ b/lib/Net/HTTP/Spore/Middleware/LogDispatch.pm
@@ -3,5 +3,37 @@ package Net::HTTP::Spore::Middleware::LogDispatch;
use Moose;
extends 'Net::HTTP::Spore::Middleware';
+has logger => (is => 'rw', isa => 'Log::Dispatch', required => 1);
+
+sub call {
+ my ($self, $req) = @_;
+
+ my $env = $req->env;
+ $env->{'sporex.logger'} = sub {
+ my $args = shift;
+ $args->{level} = 'critical' if $args->{level} eq 'fatal';
+ $self->logger->log(%$args);
+ };
+}
1;
+
+=head1 SYNOPSIS
+
+ my $log = Log::Dispatch->new();
+ $log->add(
+ Log::Dispatch::File->new(
+ name => 'file1',
+ min_level => 'debug',
+ filename => 'logfile'
+ )
+ );
+
+ my $client = Net::HTTP::Spore->new_from_spec('twitter.json');
+ $client->enable( 'LogDispatch', logger => $log );
+
+=head1 DESCRIPTION
+
+Net::HTTP::Spore::Middleware::LogDispatch is a middleware that allow you to use LogDispatch.
+
+=head1 EXAMPLES