Commit | Line | Data |
a74cad5e |
1 | use strict; |
2 | use warnings; |
3 | |
4 | use Test::More; |
5 | |
6 | my @out; |
7 | |
8 | # these shouldn't be packages, but I'm not sure how else I'm going to |
9 | # do it yet. |
10 | |
11 | { |
12 | package CatLogger; |
13 | |
14 | use Log::Contextual::NullLogger; |
15 | use base 'Log::Contextual::SimpleLogger'; |
16 | |
17 | sub include_category { $_[1] eq 'awesome' } |
18 | |
19 | sub log_contextual_coderef { |
20 | my $logger = CatLogger->new({ levels_upto => 'trace', coderef => sub { push @out, $_[0] } }); |
21 | |
22 | return Log::Contextual::NullLogger->new |
23 | unless $logger->include_category($_[0]{args}[0]); |
24 | return $logger; |
25 | } |
26 | |
27 | 1; |
28 | } |
29 | |
30 | { |
31 | package Foo; |
32 | |
33 | use Log::Contextual ':log', -args => ['lame'], |
34 | -package_logger => \&CatLogger::log_contextual_coderef; |
35 | |
36 | log_debug { 'test' }; |
37 | } |
38 | |
39 | ok @out == 0, 'no output because category is lame'; |
40 | |
41 | { |
42 | package Bar; |
43 | use Log::Contextual::NullLogger; |
44 | |
45 | use Log::Contextual ':log', -args => ['awesome'], |
46 | -package_logger => \&CatLogger::log_contextual_coderef; |
47 | |
48 | log_debug { 'test' }; |
49 | } |
50 | |
51 | ok @out == 1, 'output because category is awesome'; |
52 | |
53 | done_testing; |