App-Foca
view release on metacpan or search on metacpan
lib/App/Foca/Tools/Logger.pm view on Meta::CPAN
#
# App::Foca::Tools::Logger
#
# Author(s): Pablo Fischer (pablo@pablo.com.mx)
# Created: 10/18/2011 07:38:59 AM UTC 07:38:59 AM
package App::Foca::Tools::Logger;
=head1 NAME
App::Foca::Tools::Logger - Main logger interface, uses log4perl
=head2 DESCRIPTION
Main logger interface, uses log4perl
=cut
use strict;
use warnings;
use Exporter 'import';
use vars qw(@EXPORT_OK @EXPORT);
use Data::Dumper;
use File::Basename;
use FindBin;
use Log::Log4perl qw(:easy get_logger :levels);
@EXPORT_OK = qw(init_logger use_debug log_debug log_error log_info log_warn log_die log_connection log_request);
@EXPORT = @EXPORT_OK;
my $LOGGER = undef;
my $USE_DEBUG = 0;
=head1 Methods and functions
=head2 B<init_logger()>
Creates the logger object.
=cut
sub init_logger {
my ($self) = @_;
# Foca logging goes to STDERR
my $log4perl_config = "log4perl.logger.Foca=DEBUG, Screen\n";
$log4perl_config .= "log4perl.appender.Screen=" .
"Log::Log4perl::Appender::Screen\n";
$log4perl_config .= "log4perl.appender.Screen.stderr=1\n";
$log4perl_config .= "log4perl.appender.Screen.layout=" .
"Log::Log4perl::Layout::PatternLayout\n";
$log4perl_config .= "log4perl.appender.Screen.DatePattern=" .
"yyyy-MM-dd\n";
$log4perl_config .= "log4perl.appender.Screen.layout.ConversionPattern=" .
"\%d \%p \%m \%n\n";
Log::Log4perl->init(\$log4perl_config);
$LOGGER = get_logger('Foca');
}
=head2 B<use_debug($on)>
Turn on (by default) or off debug mode.
=cut
sub use_debug {
my ($on) = @_;
$USE_DEBUG = $on ? 1 : 0;
$ENV{'USE_DEBUG'} = $USE_DEBUG;
}
=head2 B<log_connection($ip)>
Logs a connection regardless if it is a legit request or not.
=cut
sub log_connection {
my ($ip) = @_;
log_info("Connection - Incoming connection from IP $ip");
}
=head2 B<log_request($ip, $url_path)>
( run in 1.327 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )