L
Laszlo
Hi
I need a GL::Logger wich implements Class::Singleton
to be a singleton and Log::Log4perl to can log amy
message into a file. Here is the module source:
-------------------------------------------------------------------------
package GL::Logger;
use Class::Singleton;
use vars qw( $ERROR );
@ISA = qw(Class::Singleton);
use Log::Log4perl;
my $ERROR = '';
my $logger;
sub instance(){
my $class = shift;
my $self = bless { }, $class;
Log::Log4perl::init('c:/log4perl/log4perl.conf');
unless (defined ($self->{ $logger } = Log::Log4perl->get_logger('...'))) {
$ERROR = "Cannot get configuration file (log4perl.conf)\n";
return undef;
}
$self;
}
sub log(){
my($level, $msg) = @_;
if($level eq 'DEBUG'){
$logger->debug($msg);
}
if($level eq 'INFO'){
$logger->info($msg);
}
if($level eq 'WARN'){
$logger->warn($msg);
}
if($level eq 'ERROR'){
$logger->error($msg);
}
if($level eq 'FATAL'){
$logger->fatal($msg);
}
return 0;
}
1;
-------------------------------------------------------------------------
And this is the way how I want to use it:
-------------------------------------------------------------------------
#!perl -w
use GL::Logger;
my $logger = GL::Logger->instance();
$logger->log("ERROR", "blablabla");
-------------------------------------------------------------------------
It retunr the following error message:
Use of uninitialized value in hash element at c:/Perl/site/lib/GL/Logger.pm line 14.
What is wrong ?
I need a GL::Logger wich implements Class::Singleton
to be a singleton and Log::Log4perl to can log amy
message into a file. Here is the module source:
-------------------------------------------------------------------------
package GL::Logger;
use Class::Singleton;
use vars qw( $ERROR );
@ISA = qw(Class::Singleton);
use Log::Log4perl;
my $ERROR = '';
my $logger;
sub instance(){
my $class = shift;
my $self = bless { }, $class;
Log::Log4perl::init('c:/log4perl/log4perl.conf');
unless (defined ($self->{ $logger } = Log::Log4perl->get_logger('...'))) {
$ERROR = "Cannot get configuration file (log4perl.conf)\n";
return undef;
}
$self;
}
sub log(){
my($level, $msg) = @_;
if($level eq 'DEBUG'){
$logger->debug($msg);
}
if($level eq 'INFO'){
$logger->info($msg);
}
if($level eq 'WARN'){
$logger->warn($msg);
}
if($level eq 'ERROR'){
$logger->error($msg);
}
if($level eq 'FATAL'){
$logger->fatal($msg);
}
return 0;
}
1;
-------------------------------------------------------------------------
And this is the way how I want to use it:
-------------------------------------------------------------------------
#!perl -w
use GL::Logger;
my $logger = GL::Logger->instance();
$logger->log("ERROR", "blablabla");
-------------------------------------------------------------------------
It retunr the following error message:
Use of uninitialized value in hash element at c:/Perl/site/lib/GL/Logger.pm line 14.
What is wrong ?