NAME

Log::Report::Dispatcher::Log4perl - send messages to Log::Log4perl back-end

INHERITANCE

Log::Report::Dispatcher::Log4perl
  is a Log::Report::Dispatcher

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;

DESCRIPTION

This dispatchers produces output tot syslog, based on the 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 new(to_level). 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

METHODS

Constructors

$obj->close

Log::Report::Dispatcher::Log4perl->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
    config                          <required>
    format_reason  Log::Report::Dispatcher  'LOWERCASE'
    locale         Log::Report::Dispatcher  <system locale>
    mode           Log::Report::Dispatcher  'NORMAL'
    to_level                        []

    . accept => REASONS

    . 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.

    . format_reason => 'UPPERCASE'|'LOWERCASE'|'UCFIRST'|'IGNORE'|CODE

    . locale => LOCALE

    . mode => 'NORMAL'|'VERBOSE'|'ASSERT'|'DEBUG'|0..3

    . to_level => ARRAY-of-PAIRS

Accessors

$obj->appender

    Returns the Log::Log4perl::Logger object which is used for logging.

$obj->isDisabled

$obj->mode

$obj->name

$obj->needs

$obj->type

Logging

$obj->collectLocation

Log::Report::Dispatcher::Log4perl->collectLocation

$obj->collectStack([MAXDEPTH])

$obj->log(HASH-of-OPTIONS, REASON, MESSAGE)

$obj->reasonToLevel(REASON)

    Returns a level which is understood by Log::Dispatch, based on a translation table. This can be changed with new(to_level).

$obj->stackTraceLine(OPTIONS)

Log::Report::Dispatcher::Log4perl->stackTraceLine(OPTIONS)

$obj->translate(HASH-of-OPTIONS, REASON, MESSAGE)

DETAILS

SEE ALSO

This module is part of Log-Report distribution version 0.12, built on October 23, 2007. Website: http://perl.overmeer.net/log-report/

LICENSE

Copyrights 2007 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 http://www.perl.com/perl/misc/Artistic.html