perlpal has asked for the wisdom of the Perl Monks concerning the following question:
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"); }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Scalar variable value is name of a scalar variable
by dsheroh (Monsignor) on Jul 01, 2009 at 09:00 UTC | |
Re: Scalar variable value is name of a scalar variable
by citromatik (Curate) on Jul 01, 2009 at 08:48 UTC | |
Re: Scalar variable value is name of a scalar variable
by perlpal (Scribe) on Jul 01, 2009 at 07:55 UTC | |
by GrandFather (Saint) on Jul 01, 2009 at 08:48 UTC |
Back to
Seekers of Perl Wisdom