Log::Log4perl::Filter::LevelMatch - Filter to match the log level exactly


Log-Log4perl documentation Contained in the Log-Log4perl distribution.

Index


Code Index:

NAME

Top

Log::Log4perl::Filter::LevelMatch - Filter to match the log level exactly

SYNOPSIS

Top

    log4perl.filter.Match1               = Log::Log4perl::Filter::LevelMatch
    log4perl.filter.Match1.LevelToMatch  = ERROR
    log4perl.filter.Match1.AcceptOnMatch = true

DESCRIPTION

Top

This Log4perl custom filter checks if the currently submitted message matches a predefined priority, as set in LevelToMatch. The additional parameter AcceptOnMatch defines if the filter is supposed to pass or block the message (true or false) on a match.

SEE ALSO

Top

Log::Log4perl::Filter, Log::Log4perl::Filter::LevelRange, Log::Log4perl::Filter::StringRange, Log::Log4perl::Filter::Boolean

COPYRIGHT AND LICENSE

Top


Log-Log4perl documentation Contained in the Log-Log4perl distribution.

##################################################
package Log::Log4perl::Filter::LevelMatch;
##################################################

use 5.006;

use strict;
use warnings;

use Log::Log4perl::Level;
use Log::Log4perl::Config;

use constant _INTERNAL_DEBUG => 0;

use base qw(Log::Log4perl::Filter);

##################################################
sub new {
##################################################
    my ($class, %options) = @_;

    my $self = { LevelToMatch  => '',
                 AcceptOnMatch => 1,
                 %options,
               };
     
    $self->{AcceptOnMatch} = Log::Log4perl::Config::boolean_to_perlish(
                                                $self->{AcceptOnMatch});

    bless $self, $class;

    return $self;
}

##################################################
sub ok {
##################################################
     my ($self, %p) = @_;

     if($self->{LevelToMatch} eq $p{log4p_level}) {
         print "Levels match\n" if _INTERNAL_DEBUG;
         return $self->{AcceptOnMatch};
     } else {
         print "Levels don't match\n" if _INTERNAL_DEBUG;
         return !$self->{AcceptOnMatch};
     }
}

1;

__END__