#!/usr/bin/perl --
use strict;
use warnings;
use Log::Log4perl 1.49;
my $logger ;
sub bye { $logger->info("bye"); }
{
my $logconfig = <<'__LOGCONFIG__';
log4perl.rootLogger = ALL, First, Mailer
log4perl.appender.First = Log::Log4perl::Appender::Screen
log4perl.appender.First.layout = SimpleLayout
log4perl.appender.Mailer = FakeMailSend
log4perl.appender.Mailer.to = FakeMailSend@example.com
log4perl.appender.Mailer.subject = FakeMailSend
log4perl.appender.Mailer.layout = SimpleLayout
# log4perl.appender.Mailer.buffered = 0
__LOGCONFIG__
Log::Log4perl::init( \$logconfig );
$logger = Log::Log4perl->get_logger;
$logger->debug('debug');
$logger->info('info');
$logger->warn('warn');
$logger->error('error');
$logger->trace('trace');
$logger->fatal('fatal');
bye;
}
exit( 0 );
BEGIN {
package FakeMailSend;
use Log::Dispatch::Email::MailSend qw[];
use base qw( Log::Dispatch::Email::MailSend );
sub send_email {
warn "@_\n";
}
1;
}
__END__
DEBUG - debug
INFO - info
WARN - warn
ERROR - error
TRACE - trace
FATAL - fatal
INFO - bye
FakeMailSend=HASH(0xe33e14) message DEBUG - debug
INFO - info
WARN - warn
ERROR - error
TRACE - trace
FATAL - fatal
INFO - bye
####
Can't locate object method "open" via package "Mail::Mailer::smtp" at lib/Mail/Send.pm line 58 during global destruction.
##
##
END {
undef $logger ;
}