use strict; use warnings; use Log::Log4perl; my $conf = q( log4perl.category.Script = DEBUG, ScriptFileRotateAppender, Screen log4perl.appender.ScriptFileRotateAppender = Log::Log4perl::Appender::File log4perl.appender.ScriptFileRotateAppender.filename = evalseq.log log4perl.appender.ScriptFileRotateAppender.mode = append log4perl.appender.ScriptFileRotateAppender.size = 10000000 log4perl.appender.ScriptFileRotateAppender.max = 50 log4perl.appender.ScriptFileRotateAppender.layout = PatternLayout log4perl.appender.ScriptFileRotateAppender.layout.ConversionPattern=[%p] %d %m%n log4perl.appender.Screen = Log::Log4perl::Appender::Screen log4perl.appender.Screen.stderr = 0 log4perl.appender.Screen.layout = PatternLayout log4perl.appender.Screen.layout.ConversionPattern=[%p] %d %m%n ); Log::Log4perl::init( \$conf ); my $log = Log::Log4perl::->get_logger(q(Script)); my $count = 0; until ($@) { $count++; eval 'my $abc = 1; $abc++; '; unless ($count % 1e5) { $log->info( "count=$count" ); } } $log->error( "count=$count " .$@ ); __END__