On Sat, 9 Feb 2008, Kevin M. Goess wrote:

> It's possible, but it's probably less than straightforward.  Each
> appender has exactly one layout, so what you'll need to do is create
> two appenders, and use some combination of thresholds and filters so
> that one appender only logs WARN messages and the other appender logs
> everything else.

Exactly, something along these lines:

    use Log::Log4perl qw(:easy);

    my $conf = q{
        log4perl.logger = DEBUG, AppWarn, AppRest

         # Filter to match level WARN
        log4perl.filter.MatchWarn  = Log::Log4perl::Filter::LevelMatch
        log4perl.filter.MatchWarn.LevelToMatch  = WARN
        log4perl.filter.MatchWarn.AcceptOnMatch = true

         # Filter to match everything but WARN
        log4perl.filter.MatchRest  = Log::Log4perl::Filter::LevelMatch
        log4perl.filter.MatchRest.LevelToMatch  = WARN
        log4perl.filter.MatchRest.AcceptOnMatch = false

         # Elaborate layout for WARN messages
        log4perl.appender.AppRest = Log::Log4perl::Appender::Screen
        log4perl.appender.AppRest.layout   = PatternLayout
        log4perl.appender.AppRest.layout.ConversionPattern = %F-%L %m%n
        log4perl.appender.AppRest.Filter   = MatchWarn

         # Normal layout for the rest
        log4perl.appender.AppWarn = Log::Log4perl::Appender::Screen
        log4perl.appender.AppWarn.layout   = PatternLayout
        log4perl.appender.AppWarn.layout.ConversionPattern: %m%n
        log4perl.appender.AppWarn.Filter   = MatchRest
    };

    Log::Log4perl->init(\$conf);

    DEBUG "debug message";
    WARN  "warn message";
    ERROR "error message";

will print

    debug message
    ./t-38 warn message
    error message


-- Mike

Mike Schilli
[EMAIL PROTECTED]

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
log4perl-devel mailing list
log4perl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/log4perl-devel

Reply via email to