Log::Log4perl::Filter::LevelRange - Filter for a range of log levels


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

Index


Code Index:

NAME

Top

Log::Log4perl::Filter::LevelRange - Filter for a range of log levels

SYNOPSIS

Top

    log4perl.filter.Match1               = Log::Log4perl::Filter::LevelRange
    log4perl.filter.Match1.LevelMin      = INFO
    log4perl.filter.Match1.LevelMax      = ERROR
    log4perl.filter.Match1.AcceptOnMatch = true

DESCRIPTION

Top

This Log4perl custom filter checks if the current message has a priority matching a predefined range. The LevelMin and LevelMax parameters define the levels (choose from DEBUG, INFO, WARN, ERROR, FATAL) marking the window of allowed messages priorities. The additional parameter AcceptOnMatch defines if the filter is supposed to pass or block the message (true or false).

SEE ALSO

Top

Log::Log4perl::Filter, Log::Log4perl::Filter::LevelMatch, 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::LevelRange;
##################################################

use 5.006;

use strict;
use warnings;

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

use constant _INTERNAL_DEBUG => 0;

use base "Log::Log4perl::Filter";

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

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

    bless $self, $class;

    return $self;
}

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

     if(Log::Log4perl::Level::to_priority($self->{LevelMin}) <= 
        Log::Log4perl::Level::to_priority($p{log4p_level}) and
        Log::Log4perl::Level::to_priority($self->{LevelMax}) >= 
        Log::Log4perl::Level::to_priority($p{log4p_level})) {
         return $self->{AcceptOnMatch};
     } else {
         return ! $self->{AcceptOnMatch};
     }
}

1;

__END__