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.