summary refs log tree commit diff
path: root/lib/Net/HTTP/Spore/Middleware/LogDispatch.pm
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2010-09-15 18:16:25 +0200
committerfranck cuny <franck@lumberjaph.net>2010-09-15 18:16:25 +0200
commitaf59204a30f9beb83c2a47a0a3692cbfa3873398 (patch)
tree00e829ed8c26f80260c6ecc5288b00dcd727a300 /lib/Net/HTTP/Spore/Middleware/LogDispatch.pm
parentauth format remove proto (diff)
downloadnet-http-spore-af59204a30f9beb83c2a47a0a3692cbfa3873398.tar.gz
pod
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