# start using log4perl via a config file # The name of the dispatcher is the name of the default category. dispatcher LOG4PERL => 'logger' , accept => 'NOTICE-' , config => "$ENV{HOME}/.log.conf"; # 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.logger.Logfile = Log::Log4perl::Appender::File log4perl.logger.Logfile.filename = $outfn log4perl.logger.Logfile.layout = Log::Log4perl::Layout::PatternLayout log4perl.logger.Logfile.layout.ConversionPattern = %d %F{1} %L> %m __CONFIG dispatcher LOG4PERL => $name, config => \$config;
See SYNOPSIS in Log::Report::Dispatcher
This dispatchers produces output tot syslog, based on the Sys::Log4perl
module (which will not be automatically installed for you).
See DESCRIPTION in Log::Report::Dispatcher
The REASONs for a message in Log::Report are names quite similar to the log levels used by Log::Log4perl. The default mapping is list below. You can change the mapping using new(to_level).
TRACE => $DEBUG ERROR => $ERROR ASSERT => $DEBUG FAULT => $ERROR INFO => $INFO ALERT => $FATAL NOTICE => $INFO FAILURE => $FATAL WARNING => $WARN PANIC => $FATAL MISTAKE => $WARN
Log::Report
uses text-domains for translation tables. These are
also used as categories for the Log4perl infrastructure. So, typically
every module start with:
use Log::Report 'my-text-domain', %more_options;
Now, if there is a logger inside the log4perl configuration which is named 'my-text-domain', that will be used. Otherwise, the name of the dispatcher is used to select the logger.
The global $caller_depth
concept of Log::Log4perl is broken.
That variable is used to find the filename and line number of the logged
messages. But these messages may have been caught, rerouted, eval'ed, and
otherwise followed a unpredictable multi-leveled path before it reached
the Log::Log4perl dispatcher. This means that layout patterns %/code
and
%L
are not useful in the generic case, maybe in your specific case.
See Available back-ends in Log::Report::Dispatcher
See Addition information in Log::Report::Dispatcher
See Filters in Log::Report::Dispatcher