auto sub wrapping
Arthur Axel 'fREW' Schmidt [Fri, 19 Feb 2010 23:29:03 +0000 (17:29 -0600)]
lib/Log/Contextual.pm
t/log.t

index 32f24f0..251c44d 100644 (file)
@@ -16,8 +16,11 @@ sub set_logger (&) {
    $Get_Logger = $_[0];
 }
 
-sub with_logger (&&) {
-   local $Get_Logger = $_[0];
+sub with_logger {
+   my $logger = $_[0];
+   $logger = do { my $l = $logger; sub { $l } }
+      if ref $logger ne 'CODE';
+   local $Get_Logger = $logger;
    $_[1]->();
 }
 
diff --git a/t/log.t b/t/log.t
index 21b49a1..1ad7cf9 100644 (file)
--- a/t/log.t
+++ b/t/log.t
@@ -10,9 +10,9 @@ my $var_logger2 =  VarLogger->new;
 my $var_logger3 = VarLogger->new;
 
 WITHLOGGER: {
-   with_logger { $var_logger2 } sub {
+   with_logger sub { $var_logger2 } => sub {
 
-      with_logger { $var_logger1 } sub {
+      with_logger $var_logger1 => sub {
          log_debug { 'nothing!' }
       };
       log_debug { 'frew!' };
@@ -30,7 +30,7 @@ SETLOGGER: {
 }
 
 SETWITHLOGGER: {
-   with_logger { $var_logger1 } sub {
+   with_logger $var_logger1 => sub {
       log_debug { 'nothing again!' }
    };