Hello PerlMonks,
I am implementing perl logging using Log4perl. As part of the input to a config file, the user provides the log level (Debug,Info,Warn,Error,Fatal). Depending on this, the log level is set on the log handler($DEBUG,$INFO,$WARN,$ERROR,$FATAL).
Mentioned below is a prototype of the code. I get the following error when i assign "$loglev" to the log handler "$logger->level($loglev)" - "invalid level '$INFO' at tmp5.pl line 19".
Is '$INFO' equivalent to $INFO?
#!/usr/software/bin/perl -w
use Log::Log4perl qw(get_logger :levels);
my $lev = "INFO";
my $loglev;
if ($lev =~ /.*DEBUG.*/i){
$loglev = '$DEBUG';
}elsif($lev =~ /.*INFO.*/i){
$loglev = '$INFO';
}elsif($lev =~ /.*WARN.*/i){
$loglev = '$WARN';
}elsif($lev =~ /.*ERROR.*/i){
$loglev = '$ERROR';
}elsif($lev =~ /.*FATAL.*/i){
$loglev = '$FATAL';
}else{
die "\nPlease provide the correct log level\n";
}
my $logger = get_logger();
$logger->level($loglev); # $DEBUG,$INFO,$WARN,$ERROR,$FATAL
my $appender = Log::Log4perl::Appender->new(
"Log::Dispatch::File",
filename => "test.log",
mode => "append",
);
$logger->add_appender($appender);
my $layout =
Log::Log4perl::Layout::PatternLayout->new(
"%d %p> %F{1}:%L %M - %m%n");
$appender->layout($layout);
my $cnt = 100;
if ($cnt == 100){
hit();
}else{
miss();
}
sub hit {
$logger->info("\nhit a century");
}
sub miss{
$logger->error("\nDid not hit a century");
}