manpagez: man pages & more
man Log::Log4perl::Filter::Boolean(3)
Home | html | info | man
Filter::Boolean(3)    User Contributed Perl Documentation   Filter::Boolean(3)



NAME

       Log::Log4perl::Filter::Boolean - Special filter to combine the results
       of others


SYNOPSIS

           log4perl.logger = WARN, AppWarn, AppError

           log4perl.filter.Match1       = sub { /let this through/ }
           log4perl.filter.Match2       = sub { /and that, too/ }
           log4perl.filter.MyBoolean       = Log::Log4perl::Filter::Boolean
           log4perl.filter.MyBoolean.logic = Match1 || Match2

           log4perl.appender.Screen        = Log::Dispatch::Screen
           log4perl.appender.Screen.Filter = MyBoolean
           log4perl.appender.Screen.layout = Log::Log4perl::Layout::SimpleLayout


DESCRIPTION

       Sometimes, it's useful to combine the output of various filters to
       arrive at a log/no log decision. While Log4j, Log4perl's mother ship,
       chose to implement this feature as a filter chain, similar to Linux' IP
       chains, Log4perl tries a different approach.

       Typically, filter results will not need to be passed along in chains
       but combined in a programmatic manner using boolean logic. "Log if this
       filter says 'yes' and that filter says 'no'" is a fairly common
       requirement but hard to implement as a chain.

       "Log::Log4perl::Filter::Boolean" is a special predefined custom filter
       for Log4perl which combines the results of other custom filters in
       arbitrary ways, using boolean expressions:

           log4perl.logger = WARN, AppWarn, AppError

           log4perl.filter.Match1       = sub { /let this through/ }
           log4perl.filter.Match2       = sub { /and that, too/ }
           log4perl.filter.MyBoolean       = Log::Log4perl::Filter::Boolean
           log4perl.filter.MyBoolean.logic = Match1 || Match2

           log4perl.appender.Screen        = Log::Dispatch::Screen
           log4perl.appender.Screen.Filter = MyBoolean
           log4perl.appender.Screen.layout = Log::Log4perl::Layout::SimpleLayout

       "Log::Log4perl::Filter::Boolean"'s boolean expressions allow for
       combining different appenders by name using AND (&& or &), OR (|| or |)
       and NOT (!) as logical expressions. Parentheses are used for grouping.
       Precedence follows standard Perl. Here's a bunch of examples:

           Match1 && !Match2            # Match1 and not Match2
           !(Match1 || Match2)          # Neither Match1 nor Match2
           (Match1 && Match2) || Match3 # Both Match1 and Match2 or Match3


SEE ALSO

       Log::Log4perl::Filter(3), Log::Log4perl::Filter::LevelMatch(3),
       Log::Log4perl::Filter::LevelRange(3), Log::Log4perl::Filter::MDC(3),
       Log::Log4perl::Filter::StringRange(3)


LICENSE

       Copyright 2002-2026 by Mike Schilli <m@perlmeister.com> and Kevin Goess
       <cpan@goess.org>.

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.34.3                      2026-08-15                Filter::Boolean(3)

log-log4perl 1.580.0 - Generated Tue Aug 25 18:52:31 CDT 2026
© manpagez.com 2000-2026
Individual documents may contain additional copyright information.