1use strict; 2use Plack::Test; 3use Test::Requires qw(Log::Log4perl); 4 5use Test::More; 6use Plack::Middleware::Log4perl; 7use HTTP::Request::Common; 8 9my $test_file = "t/Plack-Middleware/log4perl.log"; 10 11my $conf = <<CONF; 12log4perl.logger.plack.test = INFO, Logfile 13log4perl.appender.Logfile = Log::Log4perl::Appender::File 14log4perl.appender.Logfile.filename = $test_file 15log4perl.appender.Logfile.layout = Log::Log4perl::Layout::SimpleLayout 16CONF 17 18Log::Log4perl::init(\$conf); 19 20my $app = sub { 21 my $env = shift; 22 $env->{'psgix.logger'}->({ level => "debug", message => "This is debug" }); 23 $env->{'psgix.logger'}->({ level => "info", message => "This is info" }); 24 return [ 200, [], [] ]; 25}; 26 27$app = Plack::Middleware::Log4perl->wrap($app, category => 'plack.test'); 28 29test_psgi $app, sub { 30 my $cb = shift; 31 my $res = $cb->(GET "/"); 32 33 my $log = do { 34 open my $fh, "<", $test_file; 35 join '', <$fh>; 36 }; 37 38 like $log, qr/INFO - This is info/; 39 unlike $log, qr/debug/; 40}; 41 42END { unlink $test_file } 43 44done_testing; 45