andreas1234567 has asked for the wisdom of the Perl Monks concerning the following question:
Sample calling code that works (not using wrapper class: Messages appear as expected in "database.log" and "apache.log" according to given parameter):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); } ...
Sample calling code that does *not* work (using wrapper class: All messages end up in "apache.log")Log::Log4perl->init("/opt/etc/log4perl.conf"); my $log = Log::Log4perl->get_logger("database"); ... $log->debug("blah blah");
The setup is as follows:my $log MyLogger::->new("database"); ... $log->debug("blah blah");
The configuration file /opt/etc/log4perl.conf: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
Update: Yes it's a typo, it should read "my $log =MyLogger::->new("database");"log4perl.logger.database = DEBUG, FileAppenderDatabase log4perl.logger.apache = DEBUG, FileAppenderApache ### APPENDERS ### log4perl.appender.FileAppenderDatabase= Log::Log4perl::Appender::F +ile 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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Wrapper class for log4perl redirects to wrong log file
by PodMaster (Abbot) on Feb 09, 2004 at 13:26 UTC | |
by andreas1234567 (Vicar) on Feb 09, 2004 at 15:06 UTC | |
by PodMaster (Abbot) on Feb 09, 2004 at 17:17 UTC | |
|
Re: Wrapper class for log4perl redirects to wrong log file
by cees (Curate) on Feb 09, 2004 at 16:41 UTC | |
by andreas1234567 (Vicar) on Feb 09, 2004 at 17:13 UTC |