From: Erik S. <er...@se...> - 2002-09-04 09:20:28
|
So, I got a different patch, that does the same stuff only more. :) I also attempted (and this DOESN'T work.. YET! :) to generalize the Levels. Rather than doing the BEGIN{.. our PRIORITY = {} } statement, I wanted to create a simple routine (or even set of routines) that would just create and insert a new level appropriately. It's close, but not there yet. I'm having issues figuring out how to export a new variable on demand to the current namespace. If you guys could take a look at 026CustLevel2.t and perhaps give a hand, I'd appreciate it. Thanks, -e Mike Schilli wrote: >Hey guys, > >please find attached a patch for log4j-compatible levels, they're like > >our %PRIORITY = ( > "OFF" => 60000, > "FATAL" => 50000, > "ERROR" => 40000, > "WARN" => 30000, > "INFO" => 20000, > "DEBUG" => 10000, > "ON" => 0, >) > >now and I had to change a couple of test cases and code doing actual comparisons (<= etc.) -- can >you please verify before I check it in? Just to make sure I'm not wiping out anything you guys came >up with over labor day ;) > > >-- Mike >-------------------------------------------------------- >Mike Schilli log...@pe... http://perlmeister.com >-------------------------------------------------------- > > >------------------------------------------------------------------------ > >diff -Naur Log-Log4perl/lib/Log/Log4perl/Appender.pm Log-Log4perl.mike/lib/Log/Log4perl/Appender.pm >--- Log-Log4perl/lib/Log/Log4perl/Appender.pm Wed Aug 21 00:52:51 2002 >+++ Log-Log4perl.mike/lib/Log/Log4perl/Appender.pm Tue Sep 3 22:33:53 2002 >@@ -83,7 +83,7 @@ > > # Check if the appender has a last-minute veto in form > # of an "appender threshold" >- if($self->{level} < $ >+ if($self->{level} > $ > Log::Log4perl::Level::PRIORITY{$level}) { > return; > } >diff -Naur Log-Log4perl/lib/Log/Log4perl/Level.pm Log-Log4perl.mike/lib/Log/Log4perl/Level.pm >--- Log-Log4perl/lib/Log/Log4perl/Level.pm Tue Sep 3 11:12:17 2002 >+++ Log-Log4perl.mike/lib/Log/Log4perl/Level.pm Tue Sep 3 23:07:15 2002 >@@ -10,20 +10,18 @@ > no strict qw(refs); > > our %PRIORITY = ( >- "FATAL" => 0, >- "ERROR" => 3, >- "WARN" => 4, >- "INFO" => 6, >- "DEBUG" => 7, >+ "OFF" => 60000, >+ "FATAL" => 50000, >+ "ERROR" => 40000, >+ "WARN" => 30000, >+ "INFO" => 20000, >+ "DEBUG" => 10000, >+ "ON" => 0, > ) unless %PRIORITY; > > # Reverse mapping > our %LEVELS = map { $PRIORITY{$_} => $_ } keys %PRIORITY; > >- # Min and max >-$PRIORITY{'OFF'} = $PRIORITY{'FATAL'}; >-$PRIORITY{'ALL'} = $PRIORITY{'DEBUG'}; >- > ########################################### > sub import { > ########################################### >@@ -120,8 +118,8 @@ > > foreach (1..$delta){ > #so the list is DEBUG, INFO, WARN, ERROR, FATAL >- foreach my $p (reverse sort keys %LEVELS){ >- if ($p < $old_priority) { >+ foreach my $p (sort keys %LEVELS){ >+ if ($p > $old_priority) { > $new_priority = $p; > last; > } >@@ -140,8 +138,8 @@ > > foreach (1..$delta){ > #so the list is FATAL, ERROR, WARN, INFO, DEBUG >- foreach my $p (sort keys %LEVELS){ >- if ($p > $old_priority) { >+ foreach my $p (reverse sort keys %LEVELS){ >+ if ($p < $old_priority) { > $new_priority = $p; > last; > } >diff -Naur Log-Log4perl/lib/Log/Log4perl/Logger.pm Log-Log4perl.mike/lib/Log/Log4perl/Logger.pm >--- Log-Log4perl/lib/Log/Log4perl/Logger.pm Tue Sep 3 11:13:41 2002 >+++ Log-Log4perl.mike/lib/Log/Log4perl/Logger.pm Tue Sep 3 22:55:59 2002 >@@ -140,12 +140,12 @@ > my %priority = %Log::Log4perl::Level::PRIORITY; #convenience and cvs > > foreach my $levelname (keys %priority){ >- if ($priority{$levelname} <= $level) { >- print " ($priority{$levelname} <= $level)\n" >+ if ($priority{$levelname} >= $level) { >+ print " ($priority{$levelname} >= $level)\n" > if DEBUG; > $self->{$levelname} = $coderef; > }else{ >- print " ($priority{$levelname} > $level)\n" if DEBUG; >+ print " ($priority{$levelname} < $level)\n" if DEBUG; > $self->{$levelname} = $noop; > } > >@@ -493,7 +493,7 @@ > \$_[0]->{$level}(\@_, '$level'); > } > >- sub is_$lclevel { return \$_[0]->level() >= \$$level; } >+ sub is_$lclevel { return \$_[0]->level() <= \$$level; } > EOL > > eval $code; >diff -Naur Log-Log4perl/t/001Level.t Log-Log4perl.mike/t/001Level.t >--- Log-Log4perl/t/001Level.t Wed Jul 3 14:53:33 2002 >+++ Log-Log4perl.mike/t/001Level.t Tue Sep 3 22:38:39 2002 >@@ -16,16 +16,16 @@ > ok(1); # If we made it this far, we're ok. > > # Import them into the 'main' namespace; >-ok($FATAL < $ERROR); >-ok($ERROR < $INFO); >-ok($INFO < $DEBUG); >+ok($FATAL > $ERROR); >+ok($ERROR > $INFO); >+ok($INFO > $DEBUG); > > # Import them into the 'Level' namespace; >-ok($Level::FATAL < $Level::ERROR); >-ok($Level::ERROR < $Level::INFO); >-ok($Level::INFO < $Level::DEBUG); >+ok($Level::FATAL > $Level::ERROR); >+ok($Level::ERROR > $Level::INFO); >+ok($Level::INFO > $Level::DEBUG); > > # Import them into the 'My::Level' namespace; >-ok($My::Level::FATAL < $My::Level::ERROR); >-ok($My::Level::ERROR < $My::Level::INFO); >-ok($My::Level::INFO < $My::Level::DEBUG); >+ok($My::Level::FATAL > $My::Level::ERROR); >+ok($My::Level::ERROR > $My::Level::INFO); >+ok($My::Level::INFO > $My::Level::DEBUG); >diff -Naur Log-Log4perl/t/016Export.t Log-Log4perl.mike/t/016Export.t >--- Log-Log4perl/t/016Export.t Sun Aug 4 13:01:40 2002 >+++ Log-Log4perl.mike/t/016Export.t Tue Sep 3 22:39:30 2002 >@@ -18,10 +18,10 @@ > > ok(1); > >-ok($DEBUG > $ERROR); >-ok($INFO > $WARN); >-ok($WARN > $ERROR); >-ok($ERROR > $FATAL); >+ok($DEBUG < $ERROR); >+ok($INFO < $WARN); >+ok($WARN < $ERROR); >+ok($ERROR < $FATAL); > > ################################################## > # Init logger >diff -Naur Log-Log4perl/t/024WarnDieCarp.t Log-Log4perl.mike/t/024WarnDieCarp.t >--- Log-Log4perl/t/024WarnDieCarp.t Wed Aug 28 22:33:28 2002 >+++ Log-Log4perl.mike/t/024WarnDieCarp.t Tue Sep 3 23:00:26 2002 >@@ -90,17 +90,12 @@ > } > > ###################################################################### >-# change logging to OFF... FATALs still produce output though. >+# change logging to OFF... FATALs don't produce output. > >-$log->level($OFF); # $OFF == $FATAL... although I suspect that's a bug in the log4j spec >+$log->level($OFF); > > foreach my $f ("logwarn", "logcarp", "logcluck", >- "error_warn", "error_die") { >+ "error_warn", "error_die", "logdie", "logcroak", "logconfess") { > warndietest_nooutput(sub {$log->$f(@_)}, "Test $test: $f", "Test $test: $f", $app, "$f"); >- $test++; >-} >- >-foreach my $f ("logdie", "logcroak", "logconfess") { >- warndietest(sub {$log->$f(@_)}, "Test $test: $f", "Test $test: $f", $app, "$f"); > $test++; > } >diff -Naur Log-Log4perl/t/025CustLevels.t Log-Log4perl.mike/t/025CustLevels.t >--- Log-Log4perl/t/025CustLevels.t Tue Sep 3 11:09:42 2002 >+++ Log-Log4perl.mike/t/025CustLevels.t Tue Sep 3 23:03:47 2002 >@@ -12,12 +12,14 @@ > BEGIN { > package Log::Log4perl::Level; > our %PRIORITY = ( >- "FATAL" => 0, >- "ERROR" => 3, >- "WARN" => 4, >- "LITEWARN" => 5, >- "INFO" => 6, >- "DEBUG" => 7, >+ "OFF" => 60000, >+ "FATAL" => 50000, >+ "ERROR" => 40000, >+ "WARN" => 30000, >+ "LITEWARN" => 25000, >+ "INFO" => 20000, >+ "DEBUG" => 10000, >+ "ON" => 0, > ); > } > > > |