package MyLogger; # Wrapper class for Log::Log4perl.
use strict;
use warnings;
use fields;
use Log::Log4perl;
my $log;
my $module_name;
sub new { # initialize and return MyLogger object
my MyLogger $self = shift;
unless (ref $self) { $self = fields::new ($self); }
$module_name = shift;
if (!Log::Log4perl::initialized()) {
Log::Log4perl->init("/opt/etc/log4perl.conf");
$Log::Log4perl::caller_depth = 1;
}
$log = Log::Log4perl->get_logger($module_name);
return $self;
}
sub debug{ # log a single message
my ($self, $logmsg) = @_;
$log->debug($logmsg);
}
...
####
Log::Log4perl->init("/opt/etc/log4perl.conf");
my $log = Log::Log4perl->get_logger("database");
...
$log->debug("blah blah");
####
my $log MyLogger::->new("database");
...
$log->debug("blah blah");
####
OS RH7.3 Linux 2.4.20-20.7 i686
Apache/1.3.23 (Unix) (Red-Hat/Linux)
HTML::Mason INST_VERSION 1.23
mod_perl INST_VERSION 1.26
Log::Log4perl INST_VERSION 0.37
####
log4perl.logger.database = DEBUG, FileAppenderDatabase
log4perl.logger.apache = DEBUG, FileAppenderApache
### APPENDERS ###
log4perl.appender.FileAppenderDatabase= Log::Log4perl::Appender::File
log4perl.appender.FileAppenderDatabase.filename=/var/log/database.log
log4perl.appender.FileAppenderDatabase.mode= append
log4perl.appender.FileAppenderApache= Log::Log4perl::Appender::File
log4perl.appender.FileAppenderApache.filename= /var/log/apache.log
log4perl.appender.FileAppenderApache.mode= append
### LAYOUTS ###
log4perl.appender.FileAppenderDatabase.layout=PatternLayout
log4perl.appender.FileAppenderDatabase.layout.ConversionPattern=%d %p> %F:%L [%P] %M - %m%n
log4perl.appender.FileAppenderApache.layout=PatternLayout
log4perl.appender.FileAppenderApache.layout.ConversionPattern=%d %p> %C %F:%L [%P] %M - %m%n