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); |