###########################################
# Test Suite for Log::Log4perl
# Test all shortcuts (exported symbols)
#
# Mike Schilli, 2002 (m@perlmeister.com)
###########################################
BEGIN {
if($ENV{INTERNAL_DEBUG}) {
require Log::Log4perl::InternalDebug;
Log::Log4perl::InternalDebug->enable();
}
}
use warnings;
use strict;
use Log::Log4perl::Appender::TestBuffer;
#########################
# change 'tests => 1' to 'tests => last_test_to_print';
#########################
use Test;
BEGIN { plan tests => 16 };
use Log::Log4perl qw(get_logger :levels);
ok(1);
ok(Log::Log4perl::Level::isGreaterOrEqual($DEBUG, $ERROR));
ok(Log::Log4perl::Level::isGreaterOrEqual($INFO, $WARN));
ok(Log::Log4perl::Level::isGreaterOrEqual($WARN, $ERROR));
ok(Log::Log4perl::Level::isGreaterOrEqual($ERROR, $FATAL));
##################################################
# Init logger
##################################################
my $app = Log::Log4perl::Appender->new(
"Log::Log4perl::Appender::TestBuffer",
name => "A1");
my $logger = get_logger("abc.def");
$logger->add_appender($app);
$logger->level($DEBUG);
# Let the next logger assume the default category,
# which defaults to the current package, which
# is 'main' in this case.
my $logger_main = get_logger();
$logger_main->add_appender($app);
$logger_main->level($DEBUG);
ok(2);
##################################################
# Use logger
##################################################
my $log2 = get_logger("abc.def");
$log2->debug("Is this it?");
ok($app->buffer(), "DEBUG - Is this it?\n");
$app->buffer("");
##################################################
# Use other logger
##################################################
my $log3 = get_logger("main");
$log3->debug("Is this it?");
ok($app->buffer(), "DEBUG - Is this it?\n");
$app->buffer("");
##################################################
# Use main logger
##################################################
my $log4 = get_logger("main");
$log4->debug("Is this it?");
ok($app->buffer(), "DEBUG - Is this it?\n");
$app->buffer("");
##################################################
# Use other logger
##################################################
my $log5 = get_logger("main");
$log5->debug("Is this it?");
ok($app->buffer(), "DEBUG - Is this it?\n");
$app->buffer("");
##################################################
# Use default-main logger
##################################################
my $log6 = get_logger();
$log6->debug("Is this it?");
ok($app->buffer(), "DEBUG - Is this it?\n");
$app->buffer("");
##################################################
# Use default-main logger
##################################################
my $log7 = Log::Log4perl->get_logger();
$log7->debug("Is this it?");
ok($app->buffer(), "DEBUG - Is this it?\n");
$app->buffer("");
##################################################
# Use default-main logger
##################################################
my $log8 = Log::Log4perl::get_logger();
$log8->debug("Is this it?");
ok($app->buffer(), "DEBUG - Is this it?\n");
$app->buffer("");
##################################################
# Remove appender
##################################################
$logger->remove_appender("A1");
$logger_main->remove_appender("A1");
$log8->debug("Is this it?");
$app = Log::Log4perl->appenders()->{"A1"};
ok($app->buffer(), "");
$app->buffer("");
##################################################
# Eradicate appender
##################################################
$Log::Log4perl::Appender::TestBuffer::DESTROY_MESSAGE = "";
Log::Log4perl->eradicate_appender("A1");
ok($Log::Log4perl::Appender::TestBuffer::DESTROY_MESSAGE, "",
"destroy message before");
undef $app;
# Special for TestBuffer: remove circ ref
delete ${Log::Log4perl::Appender::TestBuffer::POPULATION}{A1};
ok($Log::Log4perl::Appender::TestBuffer::DESTROY_MESSAGES,
"Log::Log4perl::Appender::TestBuffer destroyed",
"destroy message after destruction");