NAME

Kelp::Module::Logger::Log4perl - Log4perl for Kelp applications

DESCRIPTION

This module provides log interface for Kelp web application. It uses Log::Log4perl instead of Log::Dispatch.

SYNOPSIS

# conf/config.pl
{
    'modules' => ['Logger::Log4perl'],
    'modules_init' => {
        'Logger::Log4perl' => {
            'category' => '',
            'conf'     => {
                'log4perl.rootLogger'                                  => 'TRACE, CommonLog',
                'log4perl.appender.CommonLog'                          => 'Log::Log4perl::Appender::Screen',
                'log4perl.appender.CommonLog.layout'                   => 'Log::Log4perl::Layout::PatternLayout::Multiline',
                'log4perl.appender.CommonLog.layout.ConversionPattern' => '%d{yyyy-MM-dd HH:mm:ss} - %p - %m%n',
                'log4perl.appender.CommonLog.utf8'                     => '1',
            }
        }
    }
}

# lib/MyApp.pm
sub run {
    my $self = shift;
    my $app  = $self->SUPER::run(@_);
    ...;
    $app->info( 'Kelp is ready to rock!' );
    $app->logger( 'trace', $some_ref_to_dump );

    return $app;
}

Although module provides alternarive ways of initialization like "Alternative-initialization" in Log::Log4perl:

# conf/config.pl

{
    'modules_init' => {
        'Logger::Log4perl' => {
            'category' => '',
            'conf'     => 'conf/logger.conf',
        }
    }
};

or even scalar ref:

{
    'modules' => [ 'Logger::Log4perl' ],
    'modules_init' => {
        'Logger::Log4perl' => {
            'category' => '',
            'conf'     => \<<CONF
log4perl.rootLogger                                  = DEBUG, CommonLog
log4perl.appender.CommonLog                          = Log::Log4perl::Appender::Screen
log4perl.appender.CommonLog.layout                   = Log::Log4perl::Layout::PatternLayout::Multiline
log4perl.appender.CommonLog.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} - %p - %m%n
log4perl.appender.CommonLog.utf8                     = 1
CONF
       }
    }
};

CONFIGURATION

Configuration accepts href with two keys:

category

The Log::Log4perl category to send logs to. Defaults to '' which sends to root logger.

conf

Configuration for <Log::Log4perl::init> method.

REGISTERED METHODS

Log methods can take array of scalars or reference as arguments. In case of reference Data::Dumper is used to deserialize information.

debug/info/error

Write log message to $DEBUG/$INFO/$ERROR level.

# inside controller
$c->debug( $debug_data );
$c->info( "my info message." );
$c->error( @error_messages );

logger

Write message to one of the following default Log::Log4perl log levels: trace, debug, info, warn, error, fatal, always. For backward compability you can use Log::Dispatch levels too.

# inside controller
$c->logger( 'always', @messages );

# log dispatch level
$c->logger( 'notice', 'Some notice' );

AUTHOR

Konstantin Yakunin

LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.2 or, at your option, any later version of Perl 5 you may have available.

BUGS

None reported... yet.

SEE ALSO

Log::Log4perl

Kelp::Module::Logger