Fix regression that caused D* subs to dumper even if the log level was off
Arthur Axel 'fREW' Schmidt [Thu, 28 Jul 2011 01:30:55 +0000 (20:30 -0500)]
Changes
lib/Log/Contextual.pm

diff --git a/Changes b/Changes
index f32e4b9..84a89f0 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,7 @@
 ChangeLog for Log-Contextual
 
+  - Fix regression that caused D* subs to dumper even if the log level was off
+
 0.00304 2010-07-31
   - Add $package_UPTO environment variable for WarnLogger
 
index 5f9eb14..e855e57 100644 (file)
@@ -147,14 +147,19 @@ for my $level (@levels) {
    };
 
    *{"Dlog_$level"} = sub (&@) {
-     my $code = shift;
-     local $_ = (@_?Data::Dumper::Concise::Dumper @_:'()');
-     return _do_log( $level => _get_logger( caller ), $code, @_ );
+     my ($code, @args) = @_;
+     return _do_log( $level => _get_logger( caller ), sub {
+        local $_ = (@args?Data::Dumper::Concise::Dumper @args:'()');
+        $code->(@_)
+     }, @args );
    };
 
    *{"DlogS_$level"} = sub (&$) {
-     local $_ = Data::Dumper::Concise::Dumper $_[1];
-     _do_logS( $level => _get_logger( caller ), $_[0], $_[1] )
+     my ($code, $ref) = @_;
+     _do_logS( $level => _get_logger( caller ), sub {
+        local $_ = Data::Dumper::Concise::Dumper $ref;
+        $code->($ref)
+     }, $ref )
    };
 }