|
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,
> );
> }
>
>
>
|