1########################################### 2# Test Suite for Appender additivity 3# Mike Schilli, 2002 (m@perlmeister.com) 4########################################### 5 6BEGIN { 7 if($ENV{INTERNAL_DEBUG}) { 8 require Log::Log4perl::InternalDebug; 9 Log::Log4perl::InternalDebug->enable(); 10 } 11} 12 13######################### 14# change 'tests => 1' to 'tests => last_test_to_print'; 15######################### 16use Test; 17BEGIN { plan tests => 7 }; 18 19use Log::Log4perl qw(get_logger); 20use Log::Log4perl::Appender::TestBuffer; 21 22my $EG_DIR = "eg"; 23$EG_DIR = "../eg" unless -d $EG_DIR; 24 25ok(1); # If we made it this far, we're ok. 26 27###################################################################### 28# Define the root logger and another logger, additivity on 29###################################################################### 30Log::Log4perl->init(\<<'EOT'); 31 log4perl.logger = INFO, A1 32 log4perl.logger.Twix.Bar = DEBUG, A2 33 log4perl.appender.A1=Log::Log4perl::Appender::TestBuffer 34 log4perl.appender.A1.layout=Log::Log4perl::Layout::SimpleLayout 35 log4perl.appender.A2=Log::Log4perl::Appender::TestBuffer 36 log4perl.appender.A2.layout=Log::Log4perl::Layout::SimpleLayout 37EOT 38 39my $logger = get_logger("Twix::Bar"); 40$logger->info("Percolate this!"); 41 42my $buf1 = Log::Log4perl::Appender::TestBuffer->by_name("A1")->buffer(); 43my $buf2 = Log::Log4perl::Appender::TestBuffer->by_name("A2")->buffer(); 44 45ok($buf1, "INFO - Percolate this!\n"); 46ok($buf2, "INFO - Percolate this!\n"); 47 48Log::Log4perl::Appender::TestBuffer->reset(); 49 50###################################################################### 51# Define the root logger and another logger, additivity off 52###################################################################### 53Log::Log4perl->init(\<<'EOT'); 54 log4perl.logger = INFO, A1 55 log4perl.logger.Twix.Bar = DEBUG, A2 56 log4perl.appender.A1=Log::Log4perl::Appender::TestBuffer 57 log4perl.appender.A1.layout=Log::Log4perl::Layout::SimpleLayout 58 log4perl.appender.A2=Log::Log4perl::Appender::TestBuffer 59 log4perl.appender.A2.layout=Log::Log4perl::Layout::SimpleLayout 60 log4perl.additivity.Twix.Bar = false 61EOT 62 63$logger = get_logger("Twix::Bar"); 64$logger->info("Percolate this!"); 65 66$buf1 = Log::Log4perl::Appender::TestBuffer->by_name("A1")->buffer(); 67$buf2 = Log::Log4perl::Appender::TestBuffer->by_name("A2")->buffer(); 68 69ok($buf1, ""); # Not supposed to show up in the root logger 70ok($buf2, "INFO - Percolate this!\n"); 71 72Log::Log4perl::Appender::TestBuffer->reset(); 73 74###################################################################### 75# Define the root logger and another logger, additivity on explicitely 76###################################################################### 77Log::Log4perl->init(\<<'EOT'); 78 log4perl.logger = INFO, A1 79 log4perl.logger.Twix.Bar = DEBUG, A2 80 log4perl.appender.A1=Log::Log4perl::Appender::TestBuffer 81 log4perl.appender.A1.layout=Log::Log4perl::Layout::SimpleLayout 82 log4perl.appender.A2=Log::Log4perl::Appender::TestBuffer 83 log4perl.appender.A2.layout=Log::Log4perl::Layout::SimpleLayout 84 log4perl.additivity.Twix.Bar = true 85EOT 86 87$logger = get_logger("Twix::Bar"); 88$logger->info("Percolate this!"); 89 90$buf1 = Log::Log4perl::Appender::TestBuffer->by_name("A1")->buffer(); 91$buf2 = Log::Log4perl::Appender::TestBuffer->by_name("A2")->buffer(); 92 93ok($buf1, "INFO - Percolate this!\n"); 94ok($buf2, "INFO - Percolate this!\n"); 95 96Log::Log4perl::Appender::TestBuffer->reset(); 97