#!/usr/bin/perl
###################################################################
# Check if a custom appender with a destroy handler gets its
# warning through
###################################################################
BEGIN {
if($ENV{INTERNAL_DEBUG}) {
require Log::Log4perl::InternalDebug;
Log::Log4perl::InternalDebug->enable();
}
}
package SomeAppender;
our @ISA = qw(Log::Log4perl::Appender);
sub new {
bless {}, shift;
}
sub log {}
sub DESTROY {
warn "Horrible Warning!";
}
package main;
use warnings;
use strict;
use Test::More;
use Log::Log4perl qw(:easy);
my $warnings;
$SIG{__WARN__} = sub {
$warnings .= $_[0];
};
my $conf = q(
log4perl.category = DEBUG, SomeA
log4perl.appender.SomeA = SomeAppender
log4perl.appender.SomeA.layout = Log::Log4perl::Layout::SimpleLayout
);
Log::Log4perl->init(\$conf);
plan tests => 1;
my $logger = get_logger();
$logger->debug("foo");
Log::Log4perl::Logger->cleanup();
END {
like $warnings, qr/Horrible Warning!/, "app destruction warning caught";
}