home *** CD-ROM | disk | FTP | other *** search
- ##################################################
- package Log::Log4perl::Filter::LevelRange;
- ##################################################
-
- use 5.006;
-
- use strict;
- use warnings;
-
- use Log::Log4perl::Level;
- use Log::Log4perl::Config;
-
- use constant 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__
-
- =head1 NAME
-
- Log::Log4perl::Filter::LevelRange - Filter for a range of log levels
-
- =head1 SYNOPSIS
-
- log4perl.filter.Match1 = Log::Log4perl::Filter::LevelRange
- log4perl.filter.Match1.LevelMin = INFO
- log4perl.filter.Match1.LevelMax = ERROR
- log4perl.filter.Match1.AcceptOnMatch = true
-
- =head1 DESCRIPTION
-
- This Log4perl custom filter checks if the current message
- has a priority matching a predefined range.
- The C<LevelMin> and C<LevelMax> parameters define the levels
- (choose from C<DEBUG>, C<INFO>, C<WARN>, C<ERROR>, C<FATAL>) marking
- the window of allowed messages priorities.
- The additional parameter C<AcceptOnMatch> defines if the filter
- is supposed to pass or block the message (C<true> or C<false>).
-
- =head1 SEE ALSO
-
- L<Log::Log4perl::Filter>,
- L<Log::Log4perl::Filter::LevelMatch>,
- L<Log::Log4perl::Filter::StringRange>,
- L<Log::Log4perl::Filter::Boolean>
-
- =head1 AUTHOR
-
- Mike Schilli, E<lt>log4perl@perlmeister.comE<gt>, 2003
-
- =cut
-