1###########################################
2# Test Suite for Log::Log4perl::Logger
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
13use warnings;
14use strict;
15
16use Test;
17
18use Log::Log4perl qw(get_logger);
19use Log::Log4perl::Level;
20use Log::Log4perl::Appender::TestBuffer;
21
22BEGIN { plan tests => 6 }
23
24ok(1); # If we made it this far, we're ok.
25
26##################################################
27# System-wide threshold
28##################################################
29# Reset appender population
30Log::Log4perl::Appender::TestBuffer->reset();
31
32my $conf = <<EOT;
33log4perl.logger.a = INFO, BUF0
34log4perl.appender.BUF0           = Log::Log4perl::Appender::TestBuffer
35log4perl.appender.BUF0.layout    = Log::Log4perl::Layout::SimpleLayout
36log4perl.threshold = ERROR
37EOT
38
39Log::Log4perl::init(\$conf);
40
41my $app0 = Log::Log4perl::Appender::TestBuffer->by_name("BUF0");
42
43my $loga = get_logger("a");
44
45$loga->info("Don't want to see this");
46$loga->error("Yeah, loga");
47
48ok($app0->buffer(), "ERROR - Yeah, loga\n");
49
50##################################################
51# System-wide threshold with appender threshold
52##################################################
53# Reset appender population
54Log::Log4perl::Appender::TestBuffer->reset();
55
56$conf = <<EOT;
57log4perl.logger   = ERROR, BUF0
58log4perl.logger.a = INFO, BUF1
59log4perl.appender.BUF0           = Log::Log4perl::Appender::TestBuffer
60log4perl.appender.BUF0.layout    = Log::Log4perl::Layout::SimpleLayout
61log4perl.appender.BUF0.Threshold = WARN
62log4perl.appender.BUF1           = Log::Log4perl::Appender::TestBuffer
63log4perl.appender.BUF1.layout    = Log::Log4perl::Layout::SimpleLayout
64log4perl.appender.BUF1.Threshold = INFO
65log4perl.threshold = ERROR
66EOT
67
68Log::Log4perl::init(\$conf);
69
70$app0 = Log::Log4perl::Appender::TestBuffer->by_name("BUF0");
71my $app1 = Log::Log4perl::Appender::TestBuffer->by_name("BUF1");
72
73$loga = get_logger("a");
74
75$loga->info("Don't want to see this");
76$loga->error("Yeah, loga");
77
78ok($app0->buffer(), "ERROR - Yeah, loga\n");
79ok($app1->buffer(), "ERROR - Yeah, loga\n");
80
81############################################################
82# System-wide threshold shouldn't lower appender thresholds
83############################################################
84# Reset appender population
85Log::Log4perl::Appender::TestBuffer->reset();
86
87$conf = q(
88log4perl.threshold = DEBUG
89log4perl.category = INFO, BUF0
90log4perl.appender.BUF0.Threshold = WARN
91log4perl.appender.BUF0           = Log::Log4perl::Appender::TestBuffer
92log4perl.appender.BUF0.layout    = Log::Log4perl::Layout::SimpleLayout
93);
94
95Log::Log4perl::init(\$conf);
96
97my $logger = get_logger();
98$logger->info("Blah");
99
100$app0 = Log::Log4perl::Appender::TestBuffer->by_name("BUF0");
101ok($app0->buffer(), "", "syswide threshold shouldn't lower app thresholds");
102
103############################################################
104# System-wide threshold shouldn't lower appender thresholds
105############################################################
106# Reset appender population
107Log::Log4perl::Appender::TestBuffer->reset();
108
109$conf = q(
110log4perl.threshold = ERROR
111log4perl.category = INFO, BUF0
112log4perl.appender.BUF0.Threshold = DEBUG
113log4perl.appender.BUF0           = Log::Log4perl::Appender::TestBuffer
114log4perl.appender.BUF0.layout    = Log::Log4perl::Layout::SimpleLayout
115);
116
117Log::Log4perl::init(\$conf);
118
119$logger = get_logger();
120$logger->warn("Blah");
121
122$app0 = Log::Log4perl::Appender::TestBuffer->by_name("BUF0");
123ok($app0->buffer(), "", "syswide threshold trumps thresholds");
124