=encoding utf8
=head1 NAME
Log::Report::Dispatcher::Log4perl - send messages to Log::Log4perl back-end
=head1 INHERITANCE
Log::Report::Dispatcher::Log4perl
is a Log::Report::Dispatcher
=head1 SYNOPSIS
dispatcher Log::Log4perl => 'logger', accept => 'NOTICE-'
, config => "$ENV{HOME}/.log.conf"
, to_level => [ 'ALERT-' => $ERROR ];
# disable default dispatcher
dispatcher close => 'logger';
# configuration inline, not in file: adapted from the Log4perl manpage
my $name = 'logger';
my $outfile = '/tmp/a.log';
my $config = <<__CONFIG;
log4perl.category.$name = INFO, Logfile
log4perl.appender.Logfile = Log::Log4perl::Appender::File
log4perl.appender.Logfile.filename = $outfn
log4perl.appender.Logfile.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.Logfile.layout.ConversionPattern = %d %F{1} %L> %m
__CONFIG
dispatcher 'Log::Log4perl' => $name, config => \$config;
=head1 DESCRIPTION
This dispatchers produces output tot syslog, based on the C<Sys::Log4perl>
module (which will not be automatically installed for you).
The REASON for a message often uses names which are quite similar to the
log-levels used by Log::Dispatch. However: they have a different
approach. The REASON of Log::Report limits the responsibility of the
programmer to indicate the cause of the message: whether it was able to
handle a certain situation. The Log::Dispatch levels are there for the
user's of the program. However: the programmer does not known anything
about the application (in the general case). This is cause of much of
the trickery in Perl programs.
The default translation table is list below. You can change the mapping
using L<new(to_level)|Log::Report::Dispatcher::Log4perl/"Constructors">. See example in SYNOPSIS.
TRACE => $DEBUG ERROR => $ERROR
ASSERT => $DEBUG FAULT => $ERROR
INFO => $INFO ALERT => $FATAL
NOTICE => $INFO FAILURE => $FATAL
WARNING => $WARN PANIC => $FATAL
MISTAKE => $WARN
See L<documentation in the base class|Log::Report::Dispatcher/"DESCRIPTION">.
=head1 METHODS
See L<documentation in the base class|Log::Report::Dispatcher/"METHODS">.
=head2 Constructors
See L<documentation in the base class|Log::Report::Dispatcher/"Constructors">.
=over 4
=item $obj-E<gt>B<close>()
See L<Log::Report::Dispatcher/"Constructors">
=item Log::Report::Dispatcher::Log4perl-E<gt>B<new>(TYPE, NAME, OPTIONS)
The Log::Log4perl infrastructure has all information in a configuration
file. In that file, you should find a category with the NAME.
-Option --Defined in --Default
accept Log::Report::Dispatcher depend on mode
charset Log::Report::Dispatcher <undef>
config <required>
format_reason Log::Report::Dispatcher 'LOWERCASE'
locale Log::Report::Dispatcher <system locale>
mode Log::Report::Dispatcher 'NORMAL'
to_level []
=over 2
=item accept => REASONS
=item charset => CHARSET
=item config => FILENAME|SCALAR
When a SCALAR reference is passed in, that must refer to a string which
contains the configuration text. Otherwise, specify an existing FILENAME.
=item format_reason => 'UPPERCASE'|'LOWERCASE'|'UCFIRST'|'IGNORE'|CODE
=item locale => LOCALE
=item mode => 'NORMAL'|'VERBOSE'|'ASSERT'|'DEBUG'|0..3
=item to_level => ARRAY-of-PAIRS
See L<reasonToLevel()|Log::Report::Dispatcher::Log4perl/"Logging">.
=back
=back
=head2 Accessors
See L<documentation in the base class|Log::Report::Dispatcher/"Accessors">.
=over 4
=item $obj-E<gt>B<appender>()
Returns the Log::Log4perl::Logger object which is used for logging.
=item $obj-E<gt>B<isDisabled>()
See L<Log::Report::Dispatcher/"Accessors">
=item $obj-E<gt>B<mode>()
See L<Log::Report::Dispatcher/"Accessors">
=item $obj-E<gt>B<name>()
See L<Log::Report::Dispatcher/"Accessors">
=item $obj-E<gt>B<needs>()
See L<Log::Report::Dispatcher/"Accessors">
=item $obj-E<gt>B<type>()
See L<Log::Report::Dispatcher/"Accessors">
=back
=head2 Logging
See L<documentation in the base class|Log::Report::Dispatcher/"Logging">.
=over 4
=item $obj-E<gt>B<collectLocation>()
=item Log::Report::Dispatcher::Log4perl-E<gt>B<collectLocation>()
See L<Log::Report::Dispatcher/"Logging">
=item $obj-E<gt>B<collectStack>([MAXDEPTH])
=item Log::Report::Dispatcher::Log4perl-E<gt>B<collectStack>([MAXDEPTH])
See L<Log::Report::Dispatcher/"Logging">
=item $obj-E<gt>B<log>(HASH-of-OPTIONS, REASON, MESSAGE)
See L<Log::Report::Dispatcher/"Logging">
=item $obj-E<gt>B<reasonToLevel>(REASON)
Returns a level which is understood by Log::Dispatch, based on
a translation table. This can be changed with L<new(to_level)|Log::Report::Dispatcher::Log4perl/"Constructors">.
=item $obj-E<gt>B<stackTraceLine>(OPTIONS)
=item Log::Report::Dispatcher::Log4perl-E<gt>B<stackTraceLine>(OPTIONS)
See L<Log::Report::Dispatcher/"Logging">
=item $obj-E<gt>B<translate>(HASH-of-OPTIONS, REASON, MESSAGE)
See L<Log::Report::Dispatcher/"Logging">
=back
=head1 DETAILS
See L<documentation in the base class|Log::Report::Dispatcher/"DETAILS">.
=head1 SEE ALSO
This module is part of Log-Report distribution version 0.996,
built on September 04, 2013. Website: F<http://perl.overmeer.net/log-report/>
=head1 LICENSE
Copyrights 2007-2013 by [Mark Overmeer]. For other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See F<http://www.perl.com/perl/misc/Artistic.html>