Hi,
I wanted to create a logfile on the fly using Log4perl.
I am having the following lines in my code
log4perl.logger.ClassA = DEBUG, ClassA
log4perl.appender.ClassA = Log::Log4perl::App
+ender::File
log4perl.appender.ClassA.filename = \
sub {
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = l
+ocaltime time;
my $date=sprintf("%04d%02d%02d",1900+$year,$mon+1,$mday);
my $log_file="/tmp/ClassA".$date.".log";
return $log_file;
}
In the module the call to the conf file
BEGIN {
Log::Log4perl::init_and_watch('/etc/log4perl.conf',5);
$__PACKAGE__::mylog=Log::Log4perl->get_logger();
}
But when this module is called from the testscript able to see the following error.
the error reads something like this while executing the testscript.
# in classa.t at line 8.
# Tried to use 'ClassA'.
# Error: Can't evaluate 'sub {' (Missing right curly or square b
+racket at (eval 136) line 2, at end of line
# syntax error at (eval 136) line 2, at EOF
# ) at /usr/local/lib/perl5/site_perl/5.8.5/Log/Log4perl/Config.pm lin
+e 715.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.