|
From: Mike S. <m...@pe...> - 2007-03-17 06:58:06
|
---------- Forwarded message ----------
From: Daniel Lo <dan...@pi...>
To: Michael Schilli <m...@pe...>
Subject: Log4perl doesn't express an error with multiple categories and a
non existent package.
Date: Thu, 15 Mar 2007 11:13:04 -0700
Mr. Schilli,
I was using log4perl, when I discovered that a small mistake I had made
did not generate any error message. I had made a mistake in the directory
naming. I found that log4perl will not express an warning or error, when a
package is declared that does not exist and there are other categories to choose
from.
Below is a test script that expresses this problem.
Thank you for your time,
-daniel
-----------------------------------------------------------------------
use warnings;
use strict;
use Log::Log4perl qw(get_logger);
use Test::More tests => 2;
# appender NoExist does not exist, and should generate some sort of error
# message
my $conf = qq(
log4perl.rootLogger = DEBUG, buffer
log4perl.opps = DEBUG, NoExist
# Regular Screen Appender
log4perl.appender.buffer = Log::Log4perl::Appender::TestBuffer
log4perl.appender.buffer.layout = PatternLayout
log4perl.appender.buffer.layout.ConversionPattern = %m%n
# Non Existant Appender
log4perl.appender.NoExist = Log::Log4perl::Appender::NoExist
log4perl.appender.NoExist.layout = PatternLayout
log4perl.appender.NoExist.layout.ConversionPattern = %m%n
);
eval {
Log::Log4perl->init(\$conf);
};
ok(length($@) > 0, "This should contain an error message: $@");
# no error message from: Log::Log4perl::Appender::NoExist
diag("\$@=$@\n");
my $badLogger = get_logger('opps');
$badLogger->info('How can you log to an non-existant package?');
my $buffer = Log::Log4perl::Appender::TestBuffer->by_name('buffer');
is ($buffer->buffer,"","buffer is empty!");
diag("buffer contains: " . $buffer->buffer);
|