X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FLog%2FContextual.pm;h=248a73169eabd44a5e81db970287b146625bfce7;hb=4d6051649139b17b441f11c6ff126c9017b24349;hp=e0c59d5064b18d325a34bbd11be00c06fb798128;hpb=a04d490b4bbdfbf8048efda3935f5398a1fc85a4;p=p5sagit%2FLog-Contextual.git diff --git a/lib/Log/Contextual.pm b/lib/Log/Contextual.pm index e0c59d5..248a731 100644 --- a/lib/Log/Contextual.pm +++ b/lib/Log/Contextual.pm @@ -50,12 +50,31 @@ sub arg_default_logger { $_[1] } sub before_import { my ($class, $importer, $spec) = @_; my $router = $class->arg_router; + my $exports = $spec->exports; die 'Log::Contextual does not have a default import list' if $spec->config->{default}; $router->before_import(@_); + $spec->add_export('&set_logger', sub { + my $router = $class->arg_router; + + die ref($router) . " does not support set_logger()" + unless $router->does('Log::Contextual::Role::Router::SetLogger'); + + return $router->set_logger(@_); + }) if $exports->{'&set_logger'}; + + $spec->add_export('&with_logger', sub { + my $router = $class->arg_router; + + die ref($router) . " does not support with_logger()" + unless $router->does('Log::Contextual::Role::Router::WithLogger'); + + return $router->with_logger(@_); + }) if $exports->{'&with_logger'}; + my @levels = @{$class->arg_levels($spec->config->{levels})}; for my $level (@levels) { if ($spec->config->{log}) { @@ -109,25 +128,7 @@ sub before_import { } } -sub after_import { return arg_router()->after_import(@_) } - -sub set_logger { - my $router = arg_router(); - - die ref($router) . " does not support set_logger()" - unless $router->does('Log::Contextual::Role::Router::SetLogger'); - - return $router->set_logger(@_); -} - -sub with_logger { - my $router = arg_router(); - - die ref($router) . " does not support with_logger()" - unless $router->does('Log::Contextual::Role::Router::WithLogger'); - - return $router->with_logger(@_); -} +sub after_import { $_[0]->arg_router->after_import(@_) } 1;