From: Kevin G. <ke...@go...> - 2002-09-08 03:58:27
|
> How about we split the difference and just have inc_level / dec_level > AND more_logging / less_logging? Tee hee--perfect! "Erik W. Selberg" wrote: > > So I understand that inc_level / more_logging may not increase the > amount of messages for lots of reasons. appender threshholds being a > fine one. appenders that send those levels to random places being > another. Lack of logging messages at that level being a third. :) But I > don't think that matters so much. > > How about we split the difference and just have inc_level / dec_level > AND more_logging / less_logging? Not like we can't make functions > aliases for the other. This way, folks who like to think of incrementing > and decrementing levels can, and folks who just want more or less > logging can just call the obvious function. > > -e > > Kevin Goess wrote: > > > > I'm confused... can you give me an example whereby changing the logging > > > from WARN to INFO would result in FEWER messages? > > > > You're absolutely right, there's not, I was confused, thinking of > > appender thresholds. However, there is the easy case where changing a > > logger level from WARN to INFO would not result in any change in > > logging behavior: > > log4perl.appender.app1.Threshold = WARN > > in which case neither INFO nor DEBUG messages ever appear in that > > appender's logs. See attached for a non-contrived example. > > > > I'm perfectly happy to be outvoted, shall we have a chorus of AYE's or > > NAY's for > > > > inc_level/dec_level more_logging/less_logging pumpup/silence other? > > > > > > Erik W. Selberg wrote: > > > >> Kevin Goess wrote: > >> > >>> Jeez, don't you guys sleep? > >> > >> > >> > >> um..... no. :p > >> > >>> After thinking about this for a day, I have to say I'm convinced > >>> inc_level and dec_level best describe what's going on. > >>> more/less_logging or pumpup/silence both presuppose that changing a > >>> logger's level towards DEBUG results in *more* messages. That's not > >>> necessarily the case, with appender thresholds it might just result > >>> in *different* message behavior, maybe even less messages? What the > >>> functions are doing is changing the level, what logging behavior > >>> that change results in is up to the config file. > >> > >> > >> > >> I'm confused... can you give me an example whereby changing the > >> logging from WARN to INFO would result in FEWER messages? To the > >> below, there is an intrinsic ordering, and my take away is that a > >> higher level in the ordering will spew out (a) all the log messages > >> of the previous levels, and (b) all the log messages of the current > >> level. > >> > >> Granted, you COULD do something like: > >> > >> if ($logger->is_warn()) { $logger->warn("This only shows up when > >> we're at WARN level"); } > >> > >> but nobody's gonna do that, really. > >> > >> -e > >> > >>> > >>> What inc_level and dec_level do is change the level of the logger. > >>> Since the log4j docs say quite prominently: > >>> > >>> "Basic Selection Rule: A log request of level p in a logger with > >>> (either assigned or inherited, whichever is appropriate) level q, is > >>> enabled if p >= q. > >>> This rule is at the heart of log4j. It assumes that levels are > >>> ordered. For the standard levels, we have DEBUG < INFO < WARN < > >>> ERROR < FATAL. " > >>> > >>> I understand your motivation in saying "the less I like exposing the > >>> user to the concept that there's some integer value that corresponds > >>> to a Level" but that's not the same as saying we shouldn't expose > >>> the user to the concept that levels are ordered and are > >>> comparisonable, which is a basic fact of life in log4j. > >>> > >>> If we really wanted to do it cleanly, we'd have a Priority.pm object > >>> with is_greater and is_less_than methods, like log4j does and we'd > >>> throw those around instead of the integers, but that would be stupid > >>> performance-wise and I think we don't want to go there yet, right? > >>> > >>> BTW, there's also a getSyslogEquivalent() in Priority.java, so > >>> that's fair game to implement. > >>> > >>> And re you guys' confusion between these proposed functions going in > >>> Level.pm vs. Logger.pm, note that my implementation has > >>> Logger::inc_level() calling Level::get_higher_level() to get the > >>> right value. > >>> > >>> > >>> Erik W. Selberg wrote: > >>> > >>>> Why would these be part of the Level class? I'd imagine they'd be > >>>> part of the Logger class and affect the Logger's current Level. > >>>> > >>>> -e > >>>> > >>>> > >>>> msc...@ao... wrote: > >>>> > >>>>> In a message dated Tue, 3 Sep 2002 9:50:57 PM Eastern Standard > >>>>> Time, er...@se... writes: > >>>>> > >>>>> > >>>>> > >>>>>> So the more I think about it, the less I like exposing the user > >>>>>> to the concept that there's some integer value that corresponds > >>>>>> to a Level > >>>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> Good point. Only problem is that more_logging/less_logging methods > >>>>> are kinda strange in a "Level" class. How about pumpup() and > >>>>> silence() :) ? > >>>>> > >>>>> -- Mike > >>>>> > >>>>> Mike Schilli > >>>>> log...@pe... > >>>>> http://perlmeister.com > >>>>> > >>>>> > >>>>> ------------------------------------------------------- > >>>>> This sf.net email is sponsored by: OSDN - Tired of that same old > >>>>> cell phone? Get a new here for FREE! > >>>>> https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390 > >>>>> _______________________________________________ > >>>>> log4perl-devel mailing list > >>>>> log...@li... > >>>>> https://lists.sourceforge.net/lists/listinfo/log4perl-devel > >>>>> > >>>>> > >>>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> ------------------------------------------------------- > >>>> This sf.net email is sponsored by: OSDN - Tired of that same old > >>>> cell phone? Get a new here for FREE! > >>>> https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390 > >>>> _______________________________________________ > >>>> log4perl-devel mailing list > >>>> log...@li... > >>>> https://lists.sourceforge.net/lists/listinfo/log4perl-devel > >>> > >>> > >>> > >>> > >>> > >> > >> > >> > > > > > >------------------------------------------------------------------------ > > > >#!/usr/bin/perl > > > >use Log::Log4perl; > > > >my $config = <<EOT; > > > >log4perl.category.app = FATAL, pageTheVP > >log4perl.category.app.module1 = INFO, applicationLogs > > > >log4perl.appender.pageTheVP = Log::Dispatch::Screen > >log4perl.appender.pageTheVP.layout = Log::Log4perl::Layout::SimpleLayout > >log4perl.appender.pageTheVP.Threshold = FATAL > > > >log4perl.appender.applicationLogs = Log::Log4perl::TestBuffer > >log4perl.appender.applicationLogs.layout = Log::Log4perl::Layout::SimpleLayout > > > >EOT > > > >Log::Log4perl::init(\$config); > > > >my $logger = Log::Log4perl::get_logger('app.module1'); > > > > > >$logger->info('info message 1'); > >$logger->info('info message 2'); > >$logger->info('info message 3'); > >$logger->inc_level(); > >$logger->debug('debug message'); > >$logger->fatal('big problem!!!'); > > > > > > > > > > -- Happy Trails . . . Kevin M. Goess (and Anne and Frank) 904 Carmel Ave. Albany, CA 94706 (510) 525-5217 |