/usr/share/perl5/Log/Log4perl/Filter/StringMatch.pm is in liblog-log4perl-perl 1.29-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | ##################################################
package Log::Log4perl::Filter::StringMatch;
##################################################
use 5.006;
use strict;
use warnings;
use Log::Log4perl::Config;
use constant _INTERNAL_DEBUG => 0;
use base "Log::Log4perl::Filter";
##################################################
sub new {
##################################################
my ($class, %options) = @_;
print join('-', %options) if _INTERNAL_DEBUG;
my $self = { StringToMatch => '',
AcceptOnMatch => 1,
%options,
};
$self->{AcceptOnMatch} = Log::Log4perl::Config::boolean_to_perlish(
$self->{AcceptOnMatch});
$self->{StringToMatch} = qr($self->{StringToMatch});
bless $self, $class;
return $self;
}
##################################################
sub ok {
##################################################
my ($self, %p) = @_;
local($_) = join $
Log::Log4perl::JOIN_MSG_ARRAY_CHAR, @{$p{message}};
if($_ =~ $self->{StringToMatch}) {
print "Strings match\n" if _INTERNAL_DEBUG;
return $self->{AcceptOnMatch};
} else {
print "Strings don't match ($_/$self->{StringToMatch})\n"
if _INTERNAL_DEBUG;
return !$self->{AcceptOnMatch};
}
}
1;
__END__
=head1 NAME
Log::Log4perl::Filter::StringMatch - Filter to match the log level exactly
=head1 SYNOPSIS
log4perl.filter.Match1 = Log::Log4perl::Filter::StringMatch
log4perl.filter.Match1.StringToMatch = blah blah
log4perl.filter.Match1.AcceptOnMatch = true
=head1 DESCRIPTION
This Log4perl custom filter checks if the currently submitted message
matches a predefined regular expression, as set in the C<StringToMatch>
parameter. It uses common Perl 5 regexes.
The additional parameter C<AcceptOnMatch> defines if the filter
is supposed to pass or block the message on a match (C<true> or C<false>).
=head1 SEE ALSO
L<Log::Log4perl::Filter>,
L<Log::Log4perl::Filter::LevelMatch>,
L<Log::Log4perl::Filter::LevelRange>,
L<Log::Log4perl::Filter::Boolean>
=head1 COPYRIGHT AND LICENSE
Copyright 2002-2009 by Mike Schilli E<lt>m@perlmeister.comE<gt>
and Kevin Goess E<lt>cpan@goess.orgE<gt>.
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
|