sure, that's just a simplification but it shows
the same strange symptoms:
use Log::Log4perl qw(:easy);
$conf = <<EOT;
log4perl.rootLogger = DEBUG, Log1
log4perl.appender.Log1 = Log::Log4perl::Appender::File
log4perl.appender.Log1.filename = /tmp/test.log
log4perl.appender.Log1.mode = append
log4perl.appender.Log1.layout = Log::Log4perl::Layout::SimpleLayout
log4perl.appender.Log1.Threshold = INFO
log4perl.logger = TRACE, Log2
log4perl.appender.Log2 = Log::Log4perl::Appender::ScreenColoredLevels
log4perl.appender.Log2.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.Log2.layout.ConversionPattern = %m%n
log4perl.category = DEBUG, Buffer
log4perl.appender.Buffer = Log::Log4perl::Appender::Buffer
log4perl.appender.Buffer.appender = Log1
log4perl.appender.Buffer.trigger_level = ERROR
EOT
Log::Log4perl->init(\$conf);
TRACE("message #1 (screen only)");
INFO("message #2");
INFO("message #3");
sleep(10);
ERROR("message #4");
when i run this, i get on screen:
message #2
message #3
message #4
and in the file:
INFO - message #2
INFO - message #3
INFO - message #2
INFO - message #3
ERROR - message #4
ERROR - message #4
the first two lines of the log file appear at the same time like the ones on the screen. the first line (message #1) to the screen appender just disappears but in the log file message #2, #3 & #4 get doubled when the ERROR trigger got hit.
very odd behaviour. didn't match my expectations.
greetings
|